문자 입출력 질문
멱부리
문자 몇 번입력받고 다시 출력하는 건데 왜 안되지 모르겠네요.
aaaaa
bbbbb
이렇게 입력했으면 aaaaabbbbb 이렇게 한 줄로 출력되는 것입니다.
과제로 나온 전체 프로그램 중 일부분인데요, c를 안배웠더니 모르겠네요.
오늘 9시부터 하루 종일 하다가 안되서 포기 상태..
q치면 나가게 했는데 quit치면 바로 끝나버리네요, 출력도 없이.
그리고 문자가 3개 밖에 입력이 안되는데다 q 눌러서 종료하면 쓰레기 값 출력되고.. 완전 좌절..
#includestdio.h
#includestring.h
int main()
{
char str[1024], str2[1024]; /* str과 str2 배열 2개정의 */
while(1){
puts(Input: );
gets(str); /* str에 문자 입력받기 */
if(!strcmp(str,q))
break;
strcat(str2,str); /* str2에 추가되는 문자 모으기 */
}
puts(str2); /*str2 출력 */
return 0;
}
-
good
와 답변 감사합니다.
-
시원
초기화를 안해줘서 그렇습니다. strcat자체가 str2의 내용에 str의 내용을 넣겠다는 것인데 초기화를 안해주시고 선언만 해주시니 str2에는 쓰레기 값으로 꽉차 있죠. 여기에다가 strcat으로 추가를 해봤자 str2의 범위인 1024를 넘어서서 들어갈려고 하니 당연히 표현이 안되고 쓰레기 값이 출력되는 것입니다. 이것이 바로 선언후 초기화의 중요성 입니다. 그리고 quit는 자체적으로 지원되는 명령어 입니다.