스캔셋 "%[]"
scanf함수의 형식문자를 입력하는 위치에
위와 같은 형식을 이용하면 원하는 결과값을
변수에 저장할 수 있다.
해당하는 값을 변수에 저장하고
남은 정보는 버퍼에 그대로 남아있다.
scanf(“%[A-Z]”, 식별자); "TESTstring" 입력
변수에 "TEST"만 저장하고 버퍼안에 "string" 남아있음.
대문자 A에서 Z까지의 정보를 변수에 저장.
출력함수를 사용하면 "TEST"출력.
scanf(“%[A-Z,a-z]”, 식별자); "TESTstring" 입력
"TESTstring"이 변수에 저장된다.
대문자와 소문자 정보 모두를 변수에 저장.
버퍼에는 개행문자가 남아있음.
출력함수를 사용하면 "TESTstring"출력.
scanf(“%[ ,A-Z,a-z]”, 식별자); “ TEST string”입력
" TEST string"이 변수에 저장
마찬가지로 버퍼에 개행문자가 남이있음.
A-Z앞에 스페이스를 입력하였으므로
스페이스의 문자 정보도 변수에 저장한다.
대문자 소문자 그리고
스페이스 문자도 변수에 저장.
출력함수를 사용하면 " TEST string"을 출력
scanf(“%[^A-Z]”, 식별자); “ testString” 입력
“ test”이 변수에 저장. 버퍼안에 “String” 남음.
대문자 A~Z까지 제외하고 다 저장하는데
빈칸과 test까지 변수에 저장하고
그 다음에 대문자 S나오니
그 뒤로는 그냥 버퍼에 저장.
출력함수를 사용하면 " test"을 출력
scanf(“%[^\n]%*c”, 식별자);
개행문자를 제외하고 나머지는 전부
변수에 저장하라는 뜻인데
%*c가 버퍼에 남은 한 문자를 제거하는 것이므로
gets함수와 같이 모든 문자열을 다 출력가능.
버퍼에 남는 문자가 없게 된다.
** 잘못알고 있는 것이 있으면 댓글로 알려주시면 감사하겠습니다! **
'프로그래밍 > C언어' 카테고리의 다른 글
비트연산자 (0) | 2018.06.28 |
---|---|
자료형, 보수와 음수표현 (0) | 2018.06.14 |
형식 문자열 입출력 함수 ( scanf ) (2) (0) | 2018.06.05 |
형식 문자열 입출력 함수 ( printf ) (1) (0) | 2018.06.04 |
문자열 입출력 함수 (gets / puts) (2) (0) | 2018.06.01 |