출력이 안됩니다
#include <stdio.h>
#include <string.h>
main()
{
char line[1000];
char fix[4];
int len, p;
int t = 0;
while( (len = getline(line)) > 0 )
{
for(p = 0; p < len; ++p)
{
if(line[p] != '\n')
{
fix[t] = line[p];
++t;
}
else
{
t = 0;
printf("%s\n", fix);
}
if(t == 4)
{
if(fix[0] == ' ' && fix[1] == ' ' && fix[2] == ' ' && fix[3] == ' ')
{putchar('\t');}
else if(fix[0] != ' ' && fix[1] == ' ' && fix[2] == ' ' && fix[3] == ' ')
{putchar(fix[0]); putchar('\t');}
else if(fix[0] == ' ' && fix[1] != ' ' && fix[2] == ' ' && fix[3] == ' ')
{putchar(' '); putchar(fix[1]); putchar('\t');}
else if(fix[0] == ' ' && fix[1] == ' ' && fix[2] != ' ' && fix[3] == ' ')
{putchar(' '); putchar(' '); putchar(fix[2]); putchar('\t');}
else if(fix[0] != ' ' && fix[1] != ' ' && fix[2] == ' ' && fix[3] == ' ')
{putchar(fix[0]); putchar(fix[1]); putchar('\t');}
else if(fix[0] != ' ' && fix[1] == ' ' && fix[2] != ' ' && fix[3] == ' ')
{putchar(fix[0]); putchar(' '); putchar(fix[2]); putchar('\t');}
else if(fix[0] == ' ' && fix[1] != ' ' && fix[2] != ' ' && fix[3] == ' ')
{putchar(' '); putchar(fix[1]); putchar(fix[2]); putchar('\t');}
else if(fix[0] != ' ' && fix[1] != ' ' && fix[2] != ' ' && fix[3] == ' ')
{putchar(fix[0]); putchar(fix[1]); putchar(fix[2]); putchar('\t');}
else
printf("%s", fix);
t = 0;
}
}
}
}
int getline(char s[],int lim)
{
int c, i;
for (i=0; i < lim-1 && (c=getchar())!=EOF && c!='\n'; ++i)
s[i] = c;
if (c == '\n')
{
s[i] = c;
++i;
}
s[i] = '\0';
return i;
}
나름 맞게 접근은 하고 있는거 같은데..아무 것도 출력이 안되네요 뭐가 문제죠..?
만드신 getline 에서는 문자배열과 인트값을 인수로 사용하는데,
while문에서는 line 배열만 전달해주고있네요.
getline(line, 1000) 이렇게 수정을 해도 아무 값도 출력이 되지 않습니다.
어디가 문제인걸까요..
char 배열을 string처럼 사용할 때에는
배열 마지막 값은 아스키코드값이 0인 null을 필요로합니다.
fix배열 크기를 5로하시고 마지막에 null값을 넣어보세요