#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c[1000];
while(a !=EOF){
a = getchar();
for ( b = 0; b < 1000; b++)
{
if ( a == ' ')
c[b] = '\0';
else if(a == '\t')
c[b] = '\0';
else
c[b] = a;
}
for(b=0; b<1000; b++)
{
if(c[b]=='\0')
if(c[b+1]!='\0')
c[b]=' ';
}
printf("%s", c);
}
return 0;
}
어디서 틀린건지 모르겠어요;;
약 3군데 정도의 치명적인 문제가 존재하네요..
일단 입력으로 한글자짜리 k같은게 들어오면 현재 코드는 무엇을 출력하는지 테스트해보셨습니까? 아마 1000개의 k와 그 이상의 이상한 문자가 출력될것입니다.
원인은 첫번째 반복문인 for(b=0;b<1000;b++) 이 부분을 돌면서 a값이 전혀 변하지 않기 때문입니다. c[0]부터 c[999]까지 똑같은 문자가 들어가고, 그걸 냅다 %s 출력하고있습니다.
이 부분을 고치고나면 나머지 2가지 문제가 해결(되거나 더 카오스하게 진화!!)될거같으니...일단은 "입력으로 들어온 문자를 그대로 출력해보기" 이거부터 성공시켜볼까요?