c++ for循环赋值字符串和使用strcpy函数区别?

//strcpy(nm,name);

for(i=0;i<10;i++)
{nm[i]=name[i];}
这两种方法有什么区别啊,求大神指点,写代码的时候前一种可以,后一种在外面的for循环中会直接跳出

使用strcpy函数时 复制字符串 直到 字符串结束符为止。
for(i=0;i<10;i++) {nm[i]=name[i]; } 赋10个字符,不管是否 遇到 或 没遇到 或 超过 字符串结束符所在位置。
例如:
char nm[20]=" ",name[20]="xy_123\0ABC456"; //3后面是字符串结束符
int i;
strcpy(nm,name); //用复制方法
printf("nm1:"); for (i=0;i<10;i++) printf("%c",nm[i]); //得到 xy_123
printf("\n");
for(i=0;i<10;i++) {nm[i]=name[i]; }; //用赋值方法
printf("nm2:");
for (i=0;i<10;i++) printf("%c",nm[i]); //得到xy_123 ABC
printf("\n");
输出:
nm1:xy_123
nm2:xy_123 ABC
温馨提示:答案为网友推荐,仅供参考
相似回答