본문 바로가기
Etc./C

[C] 문자열 공백/띄어쓰기 입력

by ahj 2021. 9. 26.

https://woodforest.tistory.com/91

 

[C] 띄어쓰기/공백 포함한 문자열 입력받기

scanf("%s", str) ..... 는 적합하지 않다. "%s" 는 whitespace(공백) 전까지의 문자열만 입력받기 때문이다. 1 fgets gets()도 있긴 하지만 지양하는 편이 좋다고 한다. 왜냐면! gets는 입력받는 문자열의 길이를

woodforest.tistory.com

1. fgets

공백을 포함한 문자열 = line을 읽고 싶다면 fgets()를 사용한다고 한다. (gets는 위험하기에 사용을 지양하는 게 좋다고)

 

char* fgets(char* str, int num, FILE* stream);

첫 매개 변수(str)에는 FILE에서 읽은 문자열을 저장할 메모리의 주소 지정

두번째 매개 변수(num)에는 저장할 문자의 최대 개수를 지정

세번째 매개 변수(stream)에는 문자열을 읽기 위해 사용할 파일 포인터를 적어준다. 하지만 파일에서만 읽을 수 있는 것은 아니고 세번째 인자에 stdin을 넣어주면 표준입력을 통해서도 문자열을 입력받을 수 있다고 한다.

fgets (str, 100, stdin); -> 쓰는 법

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=tipsware&logNo=221326391483 

 

fgets 함수로 표준 입력 문자열 처리하기

: C 언어 관련 전체 목차 http://blog.naver.com/tipsware/221010831969아래에 링크한 글은 이 글의 선행 ...

blog.naver.com

2. scanf[]

scanf("%[^\n]s",str);

[]는 scanset character라고 한다. [^\n]라는 뜻은, input입력 값으로 개행(\n)을 받기 전까지 계속 입력받는다는 것

 

맨 위 블로그에 정리가 잘 되어 있어서 까먹으면 다시 들어가서 보고 참고하자

'Etc. > C' 카테고리의 다른 글

[C] 포인터, 배열, 동적메모리할당  (0) 2021.10.09
[C] 데이터 처리  (0) 2021.09.21
[C] 삼항연산자  (0) 2021.09.21
[C/C++] 포인터  (0) 2021.09.19

댓글