프로그램을 작성하는 동안 숫자가있는 char 배열의 항목을 채 웁니다. 이렇게하면 0이없는 배열에 대해 계산 된 길이는 정확하지만 0으로 시작하는 배열의 길이는 0입니다!프로그램의 정의되지 않은 동작
왜 이렇게 결과가 나옵니까! 내 실수를 해석 할 수 없습니까?!
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가() =='을 찾을 때까지 카운트 업하여 문자열의 길이를 결정하기 때문에
strlen
는 그것을 필요 \ n''는 'C = (getchar가 같은지() == '\ n')', 당신은 뻔뻔스럽게도 원하지 않습니다. – Lennart당신이 무엇이든 그것을 선언 할 때, 그것을 initalizer로주십시오. 떠 다니지 마라. 입력이 실패하여 변수를 이전 상태 (코드 당 결정되지 않음)로 남겨 둡니다. –