C Programming

C언어 공백 포함 문자열 입력 받기 (scanf, gets) - 공부하는 도비

DOVISH WISDOM 2022. 10. 3. 15:13  
728x90
반응형

C를 사용하여 문자열을 입력받을 때, 무심코 공백이 포함된 문장을 입력하다가

엔터나 스페이스바가 입력된 기준으로 그 앞까지만 배열에 저장되는 걸 종종 보게 된다.

 

이러한 코드를 실행시켜 다음과 같이 입력을 하면, 원하는 결과가 출력되지 않는 걸 확인할 수 있다. 

따라서, 우리는 배열에 공백을 포함하여 입력받고 싶을 땐 아래와 같은 2가지 방법을 사용하면 된다. 

 

1. scanf 사용 시 [^\n] 추가

2. gets 함수 사용 

gets 함수는 기본적으로 공백을 포함해서 입력을 받는 함수이다. 

물론 안정성 때문에 gets 함수 사용이 권장되지는 않으니 1번 방법을 사용하여, 공백을 포함한 문자열을 입력받으시면 됩니다.