新手c语言问题 strcpy()函数
printf("请输入:");
while((ch[i]=getch())!=32)
{ printf("*");
strcpy(b,ch);//第一处
if((ch[i]<47)||(ch[i]>58))
{ i=-1;
printf("错误,含有非法字符,请重新输入\n");
printf("请输入:");
}
i++;
}
strcpy(c,ch);//第二处
puts(c);printf("\n");
puts(b);printf("\n");
我觉的第一处与第二处有区别可是不道在哪里????????????
程序运行时没有看出问题呀?
结果没有问题。
希望大家可以告诉我一下。
[解决办法]
while((ch[i]=getch())!=32)
第一、循环只是再给一个元素赋值,i的值并没有变化。
第二、strcpy的字符串需要时以'\0'结尾的,没有'\0'结尾的就不是字符串了。因此在做strcpy前需要保证字符指针或者数组都是以'\0'结尾的。
[解决办法]