#include<stdio.h> #include<stdlib.h> void copy_str(char* from, char* to){ for (; *from != '\0'; from++,to++){ *to = *from; } *to = '\0';//注意最后要记得拷贝'\0' return; } // ++ 优先级高 先执行*to = * from 然后加进行自加 void copy_str2(char* from, char* to){ for (; *from != '\0';){ *to++ = *from++; } *to = '\0';//注意最后要记得拷贝'\0' return; } void copy_str3(char* from, char* to){ while ((*to = *from) != '\0'){ from++; to++; } } void copy_str4(char* from, char* to){ while ((*to++ = *from++) != '\0'){ ; } } void copy_str5(char* from, char* to){ while (*to++ = *from++){ ; } } void copy_str6(char* from, char* to){ if (from == NULL || to == NULL){ return; } while (*to++ = *from++){ ; } } //不要轻易改变形参的值,要引入一个辅助的指针变量,把形参接过来 void copy_str7(char* from, char* to){ char *tmpfrom = from;//定义临时变量,防止错误操作对形参的修改 char *tmptpo = to; if (tmpfrom == NULL || tmptpo == NULL){ return; } while (*tmptpo++ = *tmpfrom++){ ; } printf("%s", from); } void main(){ char * from = "abcdfg"; char buf2[100]; copy_str5(from, buf2); printf("%s\n", buf2); system("pause"); }