写入程序时,我正在用数字填充char数组的条目。在这样做之后,对于没有零的数组计算的长度是正确的,但对于从零开始的数组是零!未定义的程序行为
为什么这个结果会如此!我无法解释我的错误!?
int main()
{
int number_of_terms,no,j,i;
char arr[100];
char c;
scanf("%d",&number_of_terms);
for(i=0;i<number_of_terms;i++)
{
j=0;
while(c!='\n')
{
scanf("%d",&arr[j]);
if(c=getchar()=='\n')
break;
j++;
}
printf("Length is:%d\n",strlen(arr));
}
return 0;
}
for eg if i input my array elements as 4 5
lenght is 2
and if my array elements as 0 5
length is 0..
并且'c = getchar()=='\ n''等于'c =(getchar ()=='\ n')',你可能不想要。 – Lennart
无论你声明,请给它一个initalizer。不要让它漂浮。输入可能会失败,这会使您的变量处于旧状态(根据您的代码不确定)。 –