
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");}如图,为什么完成后还有乱码?
展开
1个回答
展开全部
字符串没有结束符'\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'是强调这是个字符串结束了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询