728x90
스터디 과제를 하던 중 알게 된 것을 정리했다.
scanf로 문자열을 입력받는 방법들이다.
ⓐ 일반적인 입력
char str[100]
scanf("%s", &str);
👉 str에 공백 혹은 엔터가 있을 때까지 입력받기
ⓑ 공백을 포함한 문자열
scanf("%[^\n]s", &str);
공백을 포함해 입력받기를 원하는 경우, gets나 fgets도 사용하지만 scanf로도 구현가능
👉 [] 안의 문자를 받을 때까지 입력을 받음
예를 들어, '*'이 나올 때까지 입력을 받는 경우라면,
scanf("%[^*]s", &str);
로 표현할 수 있다.
그렇다면, [] 안의 문자를 제외하고 읽을 수는 없을까?
scanf("%[^*]%*c", &str);
'*c'는 [] 안의 문자를 제거하고 읽는다.
이 코드는 '*'가 나올 때까지 입력을 받는 대신에, '*'는 제거하고 읽는다.
* 참고자료
https://m.blog.naver.com/ytlee64/222036138284
https://noosphere.tistory.com/100
728x90
'언어 > C, C++' 카테고리의 다른 글
[C] 별 찍기 (0) | 2022.09.28 |
---|---|
[C] 입력받은 정수의 약수 구하기 (0) | 2022.09.28 |
[C] do-while 문 (0) | 2022.09.28 |
[C] 16진수로 출력하기 (0) | 2022.09.28 |
[C] 에라토스테네스의 체 (0) | 2022.05.24 |