the classical examination test

本文介绍了C语言中字符串操作函数的应用,包括复制指定范围的字符串和解析IP地址类型。通过实例演示了如何使用StrMid函数复制字符串以及如何通过自定义函数判断IP地址类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


//copy the ”n-m“ size string from  point m
void StrMid(char* str1,int m,int n,char* str2)
{
    if( !str1 && !str2){
        return ;
    }

    if( n <= m || m<0 || n>strlen(str1) ){
        return ;
    }else{
        int i=0;
        for( m; m<=n ; ++m,++i ){
            str2[i] = str1[m];
        }
        str2[i]=0;
    }
}

int main(int argc, char *argv[])
{
    char str2[100]={0};
    char str1[]={"goodmorning"};
    StrMid(str1,1,3,str2);
    printf("str2 = %s",str2);
}

//the memory test, int to char, 
//but if n is 5,6, what is the result, it due to the big-endian and little-endian
int m(char* s, int n)
{
    if(n>1)
        return s[0] + m(&s[1] , n-1);
    else
        return s[0];
}

int main()
{
    int a[]={1,2,3};
    int value = m((char*)a, 4);
    printf("value= %d\n",value);
}


//which type is the IP ?
typedef enum{
    IP_A = 0,
    IP_B,
    IP_C,
    IP_D,
    IP_E,
    IP_NO 
}w;


int ipType(const char *ipStr)
{
    if(!ipStr){
        return 0;
    }
    const char *p_str= ipStr;
    int i=0; 
    for(i=0 ;*p_str!=0 && i<3; ++i){
        int num = atoi(p_str);
        if(num <0 || num>254){
            return IP_NO;
        }
        for( ;*p_str!=0 && isdigit(*p_str); ++p_str)
            ;
        if( '.' != *p_str){
            return IP_NO;
        }       
    }

    int num = atoi(p_str);
    if(num <0 || num>254){
        return IP_NO;
    }   

    int ip_head = atoi(ipStr);
    if( ip_head >= 0xF0){
        return IP_E;
    }
    if( ip_head >= 0xE0){
        return IP_D;
    }
    if( ip_head >= 0xC0){
        return IP_C;
    }
    if( ip_head >= 0x80){
        return IP_B;
    }
    if( ip_head >= 0x00){
        return IP_A;
    }           
}
int main()
{
    setbuf(stdout,NULL);
    while(1)
    {
        char ip[100]={0};
        printf("please input a IP, I will analyse it:\n");
        fgets(ip, 99, stdin);

        printf("IP type is : ");
        switch( ipType(ip) )
        {
            case IP_A: printf("IP_A\n"); break;
            case IP_B: printf("IP_B\n"); break;
            case IP_C: printf("IP_C\n"); break;
            case IP_D: printf("IP_D\n"); break;
            case IP_E: printf("IP_E\n"); break;
            case IP_NO: printf("IP_NO\n"); break;
            default: printf("IP_NO\n"); break;
        }   
    }   
    return 0;
}

//not use judgement statement , to judge two interger number, which is the bigger
void max(int a, int b)
{
    int c = a - b;  
    const char *strs[2] = {"a large","b large"};  
    //Don't expand the highest bit
    c = unsigned(c) >> (sizeof(int)*8 - 1);  
    //equal to  c = c >> (sizeof(int)*8 - 1) &0x1;  
    printf(" %s \n",strs[c] );  
}

int main(int argc, char*argv[])
{
    setbuf(stdout, NULL);
    while(1)
    {
        char buf[100]={0};
        printf("please input two integer:\n");
        fgets( buf ,100, stdin );
        int a= atoi(buf);
        char *pStr = strchr( buf,' ');
        int b= atoi(pStr);
        printf("a=%d, b=%d\n", a,b);
        max(a,b);
    }
}
The classical pipeline of data processing typically consists of several stages or phases. These phases are: 1. Data Collection: This is the first stage of the pipeline where data is collected from various sources such as databases, web pages, APIs, and other sources. The intention of this phase is to gather data that is relevant to the problem being solved. 2. Data Pre-processing: In this stage, the collected data is cleaned, transformed, and organized in a structured format. The intention of this phase is to ensure that the data is consistent and ready for analysis. 3. Data Analysis: In this stage, the pre-processed data is analyzed using various statistical and machine learning techniques to extract valuable insights. The intention of this phase is to identify patterns, trends, and anomalies in the data. 4. Data Visualization: In this stage, the analyzed data is visualized using graphs, charts, and other visual aids. The intention of this phase is to communicate the insights and findings to stakeholders in an easy-to-understand format. 5. Decision Making: In this stage, the insights and findings obtained from the previous stages are used to make informed decisions. The intention of this phase is to take actions based on the insights and findings to improve business processes or solve the problem at hand. Overall, the classical pipeline of data processing is intended to turn raw data into actionable insights that can be used to improve business processes, solve problems, and drive innovation.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值