寫入程序時,我正在用數字填充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。不要讓它漂浮。輸入可能會失敗,這會使您的變量處於舊狀態(根據您的代碼不確定)。 –