写在主函数里面的copy写法:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
char a[] = "i am a student";
char b[64];
int i = 0;
for (i=0; *(a + i) != '\0'; i++)
{
*(b + i) = *(a + i);
}
//'\0'没有copy到b中
b[i] = '\0';
printf("a:%s\n",a);
printf("b:%s\n",b);
system("pause");
return;
}
通过函数调用来copy字符串:
必须手工补0的两种写法:
01:
void copy_str(char*from, char*to)
{
for (; *from != '\0'; from++, to++)
{
*to = *from;
}
//'\0'没有copy到*to中
*to = '\0';
return;
}
02:
void copy_str(char*from, char*to)
{
for (; *from != '\0'; )
{
//先执行操作 后执行++
*to++ = *from++; //等价于 *to=*from ; from++,to++;
}
//'\0'没有copy到*to中
*to = '\0';
return;
}
不补0的三种写法:
01:
void copy_str(char*from, char*to)
{
while ((*to=*from)!='\0')
{
from++;
to++;
}
return;
}
02:
void copy_str(char*from, char*to)
{
while ((*to++=*from++)!='\0')
{
}
return;
}
03:
void copy_str(char*from, char*to)
{
while ((*to++ = *from++))
{
}
return;
}