如何进行字符串的拷贝?


//将str2中的字符赋给str1,只要str2中的字符不为0循环就一直进行,当str2遇到0时跳出循环体并没有给str1赋0的值,因此循环结束后str1遇到‘\0’才完成

void Mystr1(char *str1,char *str2)

{

      int i;

      for(i=0;*(str2+i)!='\0';i++)    //*(str2+i)==str2[i],以下式子同理

      {

      *(str1+i) = *(str2+i);

       }

      *(str1+i) = '\0';

}

扫描二维码关注公众号,回复: 2436028 查看本文章

//将str1中的字符赋给str2,只要str2中的字符不为0循环就一直进行,str1和str2作为指针变量可以++,当它们是数组的时候不能++

void Mystr2(char *str1,char *str2)

{

      while(*str1 != '\0')

     {

        *str2 = *str1;

         str1++;

         str2++;

     }

       *str2 = '\0';

}

//将str3中的字符赋给str1

void Mystr3(char *str1,char *str3)

  {

         while(*str3 != '\0')

             {

                  *str1++ = *str3++;

              }

          *str1 = '\0';

}

//这是利用了最简便的方法,利用赋值语句,先进行*str1=*str2,后进行str1++和str2++

void Mystr4(char *str1,char *str2)

{

       while(*str1++ = *str2++);

}

 

int main()

{

char str1[]="hijkl";

char str2[]="abcde";

char str3[]="xyz";

Mystr1(str1,str2);

Mystr2(str1,str2);

Mystr3(str1,str3);

Mystr4(str1,str2);

printf("%s\n%s\n",str1,str2);

return 0;

}

 

猜你喜欢

转载自blog.csdn.net/blllllll_/article/details/78692025