鱼C论坛

 找回密码
 立即注册
查看: 2122|回复: 4

[已解决]C虐我千百遍啊,求助strcpy在这里的用法

[复制链接]
发表于 2018-3-22 18:21:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
源程序是:
#include <stdio.h>
#include <string.h>
main()
{
        int i;
        char a[] = "How are you!";
        for (i = 0; a[i]; i++)
                if (a[i] == ' ')
                        strcpy(a, &a[i + 1]);
        printf("%s\n", a);
}
求大神讲讲这段代码,strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符,这里又结合了数组。看不懂,扎心啊
最佳答案
2018-3-22 21:16:52
本帖最后由 38299676 于 2018-3-22 21:23 编辑
风过无痕丶 发表于 2018-3-22 20:19
所以说我的回答有什么问题吗~我确实说的是第四次啊~还有 哪里来的s数组啊~


我说的第4次应该改成 复制 不是给地址 这时候 a[]里的值 变成了“are you!\n"

虐啊

虐啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-22 19:12:59 | 显示全部楼层
我给你模拟一遍循环把~

第一次: i = 0  a[i] = H   if不成立~
第二次: i = 1  a[i] = o   if不成立~
第三次: i = 2  a[2] = w  if不成立~
第四次  i = 3  a[3] = ' '  if成立   strcpy把参数二的地址给参数一~  简单说~ 就是现在的a数组的首地址不再是'H' 是 空格后面的一个~ 字符 'a'
接着循环~
第五次 i = 4  a[4] = y   if不成立
第六次 i = 5  a[5] = o  if不成立
第七次i = 6   a[6] = u  if不成立
第八次i = 7   a[7] = !   if不成立
第九次i = 8   a[8] = '\0'   循环条件不成立,循环结束~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 19:49:04 | 显示全部楼层
风过无痕丶 发表于 2018-3-22 19:12
我给你模拟一遍循环把~

第一次: i = 0  a = H   if不成立~

第四次是 字符串复制函数, 参数2地址开始的字符串 复制到参数1里 包括 \n 一起 复制

这时候 字符串数组S 里的 数据 就变成了  are you!\n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 20:19:40 From FishC Mobile | 显示全部楼层
38299676 发表于 2018-3-22 19:49
第四次是 字符串复制函数, 参数2地址开始的字符串 复制到参数1里 包括 \n 一起 复制

这时候 字符串数 ...

所以说我的回答有什么问题吗~我确实说的是第四次啊~还有 哪里来的s数组啊~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-22 21:16:52 | 显示全部楼层    本楼为最佳答案   
本帖最后由 38299676 于 2018-3-22 21:23 编辑
风过无痕丶 发表于 2018-3-22 20:19
所以说我的回答有什么问题吗~我确实说的是第四次啊~还有 哪里来的s数组啊~


我说的第4次应该改成 复制 不是给地址 这时候 a[]里的值 变成了“are you!\n"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-29 13:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表