c语言字符串复制问题

#include<stdio.h>#include<string.h>main(){charcStr1[30],cStr2[30];inti;charcTemp;for(... #include<stdio.h>#include<string.h>main(){ char cStr1[30],cStr2[30]; int i; char cTemp; for(i=0;i<10;i++) { printf("cStr1[%d]=",i); scanf("%c",&cStr1[i]); cTemp=getchar(); } strcpy(cStr2,cStr1); puts(cStr2); printf("\n");}如图,为什么完成后还有乱码? 展开
 我来答
庄政警
2018-01-03 · TA获得超过9919个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:926万
展开全部

字符串没有结束符'\0',输入循环完毕后把0加在结尾就好:

#include<stdio.h>
#include<string.h>
main()
{
char cStr1[30], cStr2[30];
int i;
char cTemp;
for (i=0; i<10; i++)
{
printf("cStr1[%d]=", i);
scanf("%c", &cStr1[i]);
cTemp=getchar();
}
cStr1[i]=0;  //终结字符串
strcpy(cStr2, cStr1);
puts(cStr2);
printf("\n");

}
追问
书中有的写cStr1[i]='\0',这和cStr1[i]=0的意思和作用是一样的吗?0本身也是字符串结束符吗,是\0的缩写形式吗?
追答
'\0'就是0,写成'\0'是强调这是个字符串结束了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式