로딩
요청 처리 중입니다...

#28 C언어 fgets, gets, puts, fputs... 입력함수 그리고 strlen, strncpy, strncat에서의 널(\n)이 겁나 헷갈린다.

 #28 C언어 fgets, gets, puts, fputs... 입력함수 그리고 strlen, strncpy, strncat에서의 널(\n)이 겁나 헷갈린다.

내가 제일 헷갈렸던 부분은 입력함수들이 다 \0을 저장하는지 and \0를 자동으로 포함하는지의 여부였다. 하나씩 다 실험을 해보고 책을 몇번씩 다시 읽어보니 이제야 정립이 되어서 블로그에 포스팅을 한다.

우선 문자열이 아닌 문자 입력 함수들 getchar(), fgetc()는 문자열이 아님으로 당연히 우선 제외시킨다. 그러면 문자열 입력 함수인 scanf(), fgets()함수가 남는데 이 함수들은 \0를 자동으로 포함 할 뿐만 아니라 저장도 가능한 함수들이다.

\n을 자동으로 포함시키기 때문에 가장 골치아팠던건 fgets()함수다. 이 함수는 fgets(str, sizeof(str), stdin);의 형식을 지니는데 이때 str의 사이즈가 7이라도 \0을 자기 스스로 고려해서 sizeof(str)을 6으로 받아들인다...그리고 그 이후 널을 붙여서 결국에는 7의 사이즈가 된다. https://blog.naver.com/readeat/222826099487 #29 C언어 \0 \n...