#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"); }
