명령 줄에서 숫자를 getchar()
으로 읽고 모든 공백을 isspace()
으로 제거한 다음 putchar()
으로 인쇄하십시오. 그러나 다음 코드는 공백을 제거하지 않습니다. 입력 10 1
은 10 1
의 결과로 연결됩니다.isspace 및 getchar()가있는 공백을 무시하십시오.
실수를 찾는 것을 도와 줄 수 있습니까? 고맙습니다!
int main(void){
char input[UINT_MAX];
int i = 0;
while (i < UINT_MAX && (input[i] = getchar()) != '\n' && !isspace(input[i])){
i++;
}
if (i == UINT_MAX) {
printf("Too long");
}
else {
input[i] = '\0';
}
i = 0;
while(input[i]) {
putchar(input[i]);
i++;
}
return 0;
}
추가 헤더를 사용할 수 없습니다. 위의 기능에만 국한됩니다.
많은 시스템이 1MB 이상의 스택 크기를 처리 할 수 없으므로 'char input [UINT_MAX];'는 피하여야합니다 ('unsigned int'는 32 비트라고 가정). – ouah
당신의 코드는 예상대로'10'을 출력합니다 (버퍼 크기를 고칠 때) : http://ideone.com/CSSTEv – interjay