C语言中字符串复制函数strcpy实现原理及优化方法详解

需积分: 4 0 下载量 170 浏览量 更新于2024-04-02 收藏 87KB DOC 举报
"C经典程序-转载版;(一)C语言中字符串复制的函数为strcpy。可以编一个和它功能一样的函数进行调用。我们可以用数组的方法或者指针的方法来实现字符串复制功能。例如,下面是一个使用数组的方法编写的函数: ```c void scpy(char s1[], char s2[]) { int i = 0; while (s2[i] != 0) { s1[i] = s2[i]; i++; } s1[i] = 0; } int main() { char s1[80], s2[80]; gets(s2); scpy(s1, s2); puts(s1); } ``` 另外,我们也可以使用指针的方法来实现字符串复制功能,如下所示: ```c void scpy(char *s1, char *s2) { while (*s2) { *s1 = *s2; s1++; s2++; } *s1 = 0; } int main() { char s1[80], s2[80]; gets(s2); scpy(s1, s2); puts(s1); } ``` 如果我们合并循环体中的语句,省略条件判断`*s2!='\0'`,用`0`来代替`'\0'`,程序会更加精炼: ```c void scpy(char *s1, char *s2) { while (*s2) { *s1 = *s2; s1++; s2++; } *s1 = 0; } ``` 以上是关于C语言中字符串复制函数的三种不同实现方法。用户可以根据喜好选择使用数组的方法或者指针的方法来实现字符串复制功能,这将有助于更好地理解C语言中的字符串操作原理。"