|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
效果
- gcc my_strcpy.c -o test&&./test
- 请输入一个字符串到str1中:I love FishC.com!
- 开始拷贝str1的内容到str2中...
- 拷贝完毕!
- 现在,str2中的内容是: är_ÿ
复制代码
代码
- #include <stdio.h>
- #define MAX 1024
- int main() {
- char str1[MAX];
- char str2[MAX];
- char *p1 = str1;
- char *p2 = str2;
- printf("请输入一个字符串到str1中:");
- fgets(str1, MAX, stdin);
- printf("开始拷贝str1的内容到str2中...\n");
- while ((*p1++ = *p2++) != '\0')
- ;
- printf("拷贝完毕!\n现在,str2中的内容是:%s\n", str2);
- return 0;
- }
复制代码
您的代码中存在一个错误,导致 strcpy 函数无法正常工作。在拷贝字符串时,您将 p1 和 p2 的赋值顺序搞反了。正确的实现应该是 *p2++ = *p1++。以下是修复后的代码:
- #include <stdio.h>
- #define MAX 1024
- int main() {
- char str1[MAX];
- char str2[MAX];
- char *p1 = str1;
- char *p2 = str2;
- printf("请输入一个字符串到str1中:");
- fgets(str1, MAX, stdin);
- printf("开始拷贝str1的内容到str2中...\
- ");
- while ((*p2++ = *p1++) != '\\0')
- ;
- printf("拷贝完毕!\
- 现在,str2中的内容是:%s\
- ", str2);
- return 0;
- }
复制代码
现在,当您使用 gcc my_strcpy.c -o test && ./test 编译并运行此代码时,您应该会看到预期的输出,即将 str1 中的字符串成功拷贝到 str2 中。
如果问题已经解决,请设置最佳答案
|
|