Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[125] scanf에 대해서 추가 답변입니다.
정남영 [kermi] 6117 읽음    2001-12-10 14:18
scanf의 스캔셋(저는 search set이라고 알고 있는데.. 아마도 같은 말이겠져? ^^;;)을
이용하여 대문자와 숫자만을 입력받고자 할때는 다음과 같이 하면 됩니다.

char Msg[100] = {0,};

scanf("%[A-Z0-9]", Msg);

printf("%s", Msg);

위와 같이 하게 되면 scanf에서 대문자와 숫자만을 입력받게 됩니다.

의미는 다음과 같습니다.
scanf함수를 scanf("%[A-Z]", Msg); 이렇게 사용하게되면 A부터 Z까지의 입력만을 받아라는 뜻입니다.
또한 scanf("%[0-9]", Msg); 이렇게 사용하게되면 0부터 9까지의 숫자만을 입력받아라는 뜻입니다.

조합을 하게 되면 위와같은 [A-Z0-9]라는 모습이 되는겁니다.

참고로 주의할건 만약 대문자와 숫자만 입력받는다고 했는데 다른 문자가 들어오게 되면 그즉시 scanf를
종료하게 됩니다. 위의 코드로 컴파일 했다고 가정하고 이해하기 쉽게 예를들죠..

입력을 ABCDE12345 이렇게 하게 되면 모두다 나오게 됩니다. 하지만
ABCDE12c34 라고 하게 되면 소문자 c가 입력조건에 걸리게 되며 ABCDE12까지만 Msg에 저장하게 되고
나머지는 무시하게 됩니다. 중간에 조건에 해당하지 않는 문자가 있을경우 Application 레벨에서
체크해낼수 있는 방법이 없게 되는겁니다.

그럼 참고가 되셨기를 ^^;;
      

wooks 님이 쓰신 글 :
: 질문이 있는데요...
:
: 요 문제 좀 풀어주실 수 있나요?
:
: 6. scanf를 이용하여 문자열을 입력받는데 대문자와 숫자만 입력받고자 한다. 이때 스캔셋을 어떻게 사용하여야 하는가?
:
: 7. main함수에 argument를 사용하려고 한다. 이때 main(int argc, char *argv[])의 형식을 사용하는데 argc와 argv를 각각 설명하시오.
:
: 좀 풀어주세요.
:
: 꼭 좀...

+ -

관련 글 리스트
122 질문이 있는데요.? wooks 2404 2001/12/09
125     scanf에 대해서 추가 답변입니다. 정남영 6117 2001/12/10
123     Re:질문이 있는데요.? 조성택 3668 2001/12/09
124         Re:Re:감사합니다. wooks 2111 2001/12/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.