美文网首页
电商专业学习嵌入式软件开发第二十四天

电商专业学习嵌入式软件开发第二十四天

作者: 雨打梨花闭门寒 | 来源:发表于2017-02-17 20:01 被阅读0次
    • 预科第十三天

    今天是预科的最后一天,讲的内容也比较少,下周一正式开班。老师先给我们讲解了昨天留的作业,然后就给我们讲了一些字符串的截取。

    //实现mystrcpy:
    #include <stdio.h>
    #include <string.h>
    void myStrcpy(char *dst,const char *src,int dstSize)
    {
        if(dstSize<=strlen(src))
        {
            printf("越界\n");
            return;
        }
        while (*src!=0)
        {
            *dst=*src;
            dst++;
            src++;
        }
        *dst=0;
    }
    int main()
    {
        char dst[6];
        char sorce[10]="hello";
        myStrcpy(dst,sorce,6);
        printf("dst=%s\n",dst);
       return 0; 
    }
    
    //截取信息,遇到';'截取 xx1;xx2;xxx
    #include <stdio.h>
    #include <string.h>
    void splitStringByCharacter(char *str,char ch,char *preStr,char *behindStr)
    {
        while (*str!=ch)
        {
            *preStr=*str;
            str++;
            preStr++;
        }
        *preStr=0;
        str++;
        while (*str!=0)
        {
            *behindStr=*str;
            behindStr++;
            str++;
        }
        *behindStr=0;
    }
    int main()
    {
        char message[20]="xx1;xx2;info";
        char preStr1[10];
        char preStr2[10];
        char behindStr1[10];
        char behindStr2[10];
        
        splitStringByCharacter(message, ';', preStr1, behindStr1);
        splitStringByCharacter(behindStr1, ';', preStr2, behindStr2);
        printf("preStr=%s\nbehindStr=%s\npreStr2=%s\nbehindStr2=%s\n",preStr1,behindStr1,preStr2,behindStr2);
        return 0;
    }
    

    字符串数组实际上就是一个二维数组

    char str[4][10] = {          //经过试验在Visual C++ 6.0中这样写会出错
        "hello",
        "world",
        "nihao",
        "xxxx"
          };
    str[0][3] = 'y';
    char *p[4] = {
        "hello",
        "world",
        "nihao",
        "xxxx"
          };
    //p[0][3] = 'y';//*(p[0]+3) = 'y';
    int i;
    for(i = 0;i < 4;i++)
    {
        printf("str[%d] = %s\n",i,str[i]);  
    }
    

    将哪个字符串进行截取,
    思路1:
    截取的位置和截取的长度
    char dst[10];
    char source[20] = "helloworld";
    splitStringByBeginPositionAndLength(source,5,6,dst);
    printf("dst = %s\n",dst);
    思路2:
    截取的起始位置和截取的最终位置
    思路3:
    拿到子字符串的起始位置
    思路4:
    判断某个字符串是否有想要的字符串

    #include<stdio.h>
    #include<string.h>
    //截取的起始位置和截取的长度
    void splitStringByBeginPositionAndLength(char *str,int start,int length,char *dst)
    {
        if(start+length>strlen(str))
        {
            printf("越界\n");
            return;
        }
        str+=start;
        int i;
        for (i=0; i<length; i++)
        {
            *dst=*str;
            dst++;
            str++;
        }
        *dst=0;
    }
    int main()
    {
        char dst[10];
            char source[20]="helloworld";
            splitStringByBeginPositionAndLength(source, 5, 5, dst);
            printf("dst=%s\n",dst);
      return 0;
    }
    

    思路2:截取的起始位置和截取的最终位置

    #include<stdio.h>
    #include<string.h>
    //截取的起始位置和截取的最终位置
    void splitStringByStartPositionAndEndPosition(char *str,int start,int end,char *dst)
    {
        if(end + 1 > )
        char *endPosition = str + end +1;
        str += start;
        while(str != endPosition)
        {
            *dst = *str;
            dst++;
            str++;
        }
        *dst = 0;
    }
    int main()
    {
        char dst[10];
        char src[20] = "helloworldnihao";
        splitStringByStartPositionAndEndPosition(src,5,9,dst);
        printf("dst = %s\n",dst);
      return 0;
    }
    

    思路3:
    拿到子字符串的起始位置
    思路4:
    判断某个字符串是否有想要的字符串

    老师留了3、4两点给我们做作业,让我们自己思考如何实现,对我来说难度真的不小。

    相关文章

      网友评论

          本文标题:电商专业学习嵌入式软件开发第二十四天

          本文链接:https://www.haomeiwen.com/subject/ewilwttx.html