두경의우 출력값이 달라서 설명좀 부탁드려요.
벤자민
질문 제목 : 출력값에서 이해가 잘안가서요.문자열 3개를 입력받고 사전적으로 큰 문자열로 배열한다음 3문자열을 합해서 출력하는 코드 입니다.질문 내용 :
여기서 문자열 입력을 할때 fgets함수로 입력을 받으면 나중에 출력을 할때 자동으로 줄이 한칸씩 내려가서 출력이 됩니다.
ex)출력값
aaaa
bbbb
cccc
그런데 scanf함수로 입력값을 받으면 나중에 출력되는 문자열이 한줄에 한문자열로 출력이 되요.
ex)aaaabbbbcccc
fgets함수로 입력을 받아도 strcat함수에서 합쳐서 한줄로 출력해야 하는게 아닌가요?
답변부탁드립니다. 감사합니다.
#include stdio.h
#include string.h
int main(void)
{
char str1[30];
char str2[30];
char str3[30];
char costr[150];
int i;
int result;
fputs(첫번째 문자를 입력하시요.: ,stdout);
fgets(str1, sizeof(str1),stdin);
fputs(두번째 문자를 입력하시요.: ,stdout);
fgets(str2, sizeof(str2),stdin);
fputs(세번째 문자를 입력하시요.: ,stdout);
fgets(str3, sizeof(str3),stdin);
result=strcmp(str1,str2);
if(result0)
{
result=strcmp(str1,str3);
if(result0)
{
strcpy(costr,str1);
result=(str2,str3);
if(result0)
{
strcat(costr,str2);
strcat(costr,str3);
}
else
{
strcat(costr,str3);
strcat(costr,str2);
}
}
else
{
strcpy(costr,str3);
strcat(costr,str1);
strcat(costr,str2);
}
}
else
{
result=strcmp(str2,str3);
if(result0)
{
result=strcmp(str1,str3);
strcpy(costr,str2);
if(result0)
{
strcat(costr,str1);
strcat(costr,str3);
}
else
{
strcat(costr,str3);
strcat(costr,str1);
}
}
else
{
strcpy(costr,str3);
strcat(costr,str2);
strcat(costr,str1);
}
}
puts(costr);
return 0;
}