将字符串src拷贝到des
1.
void Mystrcpy1(char *des,char*src)
{
int i;
for(i=0;src[i]!='\0';i++)//*(src+i)
{
des[i] = src[i];
}
des[i] = '\0';
}
通过i++遍历字符串src直到字符串的结束标识‘\0’。最后给des加上结束标志‘\0’
2.
void Mystrcpy2(char *des,char*src)
{
int i;
for(i=0; *(src+i);i++)
{
*(des+i) = *(src+i);
}
*(des+i) = '\0';
}
通过指针+1的方式将str中的字符一个一个赋值给des。
3.
void Mystrcpy3(char *des,char*src)
{
while(*src != '\0')
{
*des = *src;
des++;
src++;
}
*des = '\0';
}
当*src!=0是 循环执行
a.将src地址赋值给des;
b.des和src都向后走。
4.
void Mystrcpy4(char *des,char*src)
{
while(*src != '\0')
{
*des++ = *src++;//等价*(des++) = *(src++);
}
*des = '\0';
}
与方法3相似,把++直接写入指针中。
5.
void Mystrcpy(char *des,char *src)
{
while(*des++ = *src++);//字符串拷贝,经常考试
}
用一句代码实现字符串拷贝时,用到此方法。
主函数:
int main()
{
char str1[100] = "";
char str2[] = "abcde";
Mystrcpy(str1,str2);//char*,char *
printf("%s\n",str1);
return 0;
}