#include
void
main()
{
char
str1[10],str2[10],*p;
int
i;
p=str1;
for(i=0;i<9;i++)
scanf("%c",&str1[i]);
str1[i]=
'\0';////该在str1[i]最后加一个'\0'要下面的结束for(i=0;*p;i++,p++)
就找不到结束符,所以后面就有乱码“烫烫”
for(i=0;*p;i++,p++)///你可以用i<10来直接截取字符的前十位是可以的但是只是截取,其实真是的str2仍然后面有乱码
str2[i]=*p;
str2[i]='\0';
printf("%s\n",str2);
}
1.scanf赋值时把数组填满了,哪有结束标志。赋值给str1时应该用个数控制而不是结束标记。最后那个打印也有问题,for里面判断语句有问题,输出语句输出的是地址,你却用%c,是不是笔误啊
是不是这个?
printf("%c",&str2[i]);
要把&去掉。
程序中的str2未定义!
for(i=0;str2[i]!='\0';i++)