scanf의 형 지정자 중 [...]과 [^...]에 대해
초월
질문 제목 : scanf의 형 지정자 중 [...]과 [^...]에 대해scanf의 형 지정자 중 [...]과 [^...]이 어떻게 동작하는 지 궁금합니다.
질문 내용 :
scanf의 형 지정자중에 [...]와 [^...]가 있다는 걸 알았는데요.
[...]은 괄호안에 있는 문자만 입력된다.입력동작은력동작은 일치하지 않는 문자가 나타나거나
지정된 필드 폭 이상 사용되거나 엔터키를 누르는 즉시 종료된다.
라고 나와있는 데요. 한 예로 scanf(%[ab],str); 이라고 했을 때를 보면요.
abc를 입력했을 때에는 ab가 str에 저장된 다음, c는 버퍼에 남겨진 채로 scanf를 빠져나오는 것이고,
cab를입력했을 때에는 str에 널 문자만 저장되고 cab가 버퍼에 남겨진 채로scanf를 빠져나오거나,
아니면 str에는 아무것도 저장이 안되고 cab가 버퍼에 남겨진 채로 scanf를 빠져나오는 것인가요?
그리고, a~z, 1~9를 입력받으려고할 경우에 %[a...z1...9]로 쓸 수 있나요?
[^...]은 괄호안에 있지 않는 문자만 입력된다고 하는데요.
이것 역시 문자열을 읽는 중에 괄호안의 문자들 중에서 같은게 있으면 나머지 부분은 버퍼에 남겨진 채로
scanf를 빠져나오는 것인가요.scanf(%[^\n],str); 이렇게 하면 gets 함수처럼 동작하게 되는 것인가요?
-
Sweet
정규표현식을 사용할 수 있었나부네...
-
맑은가람
정규표현식이었군요. 찾아보니 분량이 방대하네요... 윗분들 답변 감사합니다.
-
돋가이
처음 보는 내용이네요 허허;;;
이런건 언제 만든거햐!!! -
세여닝
첫번째. 후자입니다.
두번째. %[a-z1-9]입니다.
세번째. 네 맞습니다.
네번째. 비슷하게 동작하네요. 맞는듯합니다.
ps. 문자 집합의 기호로는 [, ^, -, ]만 지원합니다.
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2700695 | 간단한 메모장 구현을 할려고 하는데요 (9) | 늘솜 | 2025-07-07 |
2700668 | c언어 질문입니다. 도와주세요~ (3) | 가자 | 2025-07-07 |
2700639 | 한글입력받아서 ㄱㄴㄷ순서대로출력하는법좀 | 두빛나래 | 2025-07-06 |
2700610 | 정말 기초적인 더하기,여백 문제 help | 무슬 | 2025-07-06 |
2700562 | 함수포인터에서요 (7) | 소심한여자 | 2025-07-06 |
2700530 | 전처리문 질문입니다. (1) | 아놀드 | 2025-07-05 |
2700510 | c언어를 어케하면 잘할수 있을까요.. | 연연두 | 2025-07-05 |
2700484 | 두 개가 차이가 뭔지 알려주세요...(소수 찾는 프로그램) (2) | 날위해 | 2025-07-05 |
2700426 | 인터넷 창 띄우는 질문이요 (1) | 정훈 | 2025-07-04 |
2700400 | 원넓이를 계산이요 ㅜㅜ | 천칭자리 | 2025-07-04 |
2700368 | if에 관해서 질문이요... | Orange | 2025-07-04 |
2700339 | 이거 결과값이 왜이런건지.. (4) | 그댸와나 | 2025-07-04 |
2700313 | 파일 읽어서 저장하는데 빈파일일 경우 문재가 발생하네요.. (2) | 크나 | 2025-07-03 |
2700287 | 구조체 동적할당 연습을 하는데 오류가 뜹니다...(해결) (3) | 아련나래 | 2025-07-03 |
2700264 | 문자와 숫자 동시에 입력??? | 글고운 | 2025-07-03 |
2700236 | txt파일로만 쓰고 읽게 하려면 어떻게 해야 하나요..?? (8) | 미국녀 | 2025-07-03 |
2700211 | 전위 연산자 (2) | 어른처럼 | 2025-07-02 |
2700183 | C에서 파일이름을 받고, 그 파일의 사이즈를 출력해줘야하는데 내용이 출력이 안되네요 ;ㅅ; | 피스케스 | 2025-07-02 |
2700150 | 꼭좀 도와주세요ㅠㅠㅠ | 호습다 | 2025-07-02 |
2700095 | 연산문제...질문... | 오빤테앵겨 | 2025-07-01 |