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

  • 预科第十三天

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

//实现mystrcpy:
#include 
#include 
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 
#include 
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
#include
//截取的起始位置和截取的长度
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

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

#include
#include
//截取的起始位置和截取的最终位置
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两点给我们做作业,让我们自己思考如何实现,对我来说难度真的不小。

你可能感兴趣的:(电商专业学习嵌入式软件开发第二十四天)