작성한 질문수
홍정모의 따라하며 배우는 C언어
11.4 문자열을 입력받는 다양한 방법들
작성
·
168
0
런타임 에러 뜨는 이유가 문자열 제일 마지막에 붙는 \n때문에 그런건가요?
+
마지막 예제에서
if(st[i] == '\n')
st[i] = '\0';
의 존재의미가 무엇인가요?
만약 1234567890abc을 입력한다면
1234567890\0이 fgets로 갈 것이고
이 때 \0때문에 else문으로 가서 버퍼가 비워질텐데
애초에 fgets에 \n이 저장될 수 없지 않나요?
답변 1
넵 맞습니다.
마지막 예시는 애초에 줄바꿈이 있을 경우 이를 대체하기 위한 코드입니다.
(줄바꿈 \n이 입력되었을 경우 이를 \0로 바꾸기 위해 넣은 코드입니다)