스캔셋 "%[]"

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함수와 같이 모든 문자열을 다 출력가능.

버퍼에 남는 문자가 없게 된다.






** 잘못알고 있는 것이 있으면 댓글로 알려주시면 감사하겠습니다! **

+ Recent posts