본문 바로가기
C & C++/C & C++

CString 변수값 숫자여부 판별

by izen8 2011. 4. 27.
반응형

일반적으로 Edit 컨트롤의 값을 CString 변수의 값으로 받게 된다.
그 값이 숫자로만 된 정수값인지 판별해야 할 필요가 생겼다.

라이브러리 함수 중에 atoi() 라는 함수가 있다.
int atoi( const char *string );

인수로 문자열 포인터를 주어주면
만약 숫자로 된 문자열일 경우 해당하는 숫자문자열을 int형 숫자로 변경해 준다.
1. 인수가 "aaa" 일 경우
   NULL 을 리턴한다.

2. 인수가 "123" 일 경우
   123 을 리턴한다.

3. 인수가 "12a2" 일 경우
   NULL을 리턴 할줄 알았는데12를 리턴한다.

 



(방법 1)
 물론 여러 방법이 있겠지만 atoi() 함수가 위의 3번 같은 결과를 리턴하는 것을 이용해 보았다.

  1. CString 값을 char * 형으로 변환 한다.
  2. 변환한 char *형 값을 atoi() 함수 인수에 넣어 실행시켜 본다.
      2-1. NULL 을 리턴하면 문자값으로 시작한 값이므로 return;
  3. 변환한 char *형 값을 다시 CString 형으로 변환한다.
  4. 변환된 CString 형 값이 맨처음 CString 과 다르면 숫자 중간에 문자가 낀 것이므로 return;

반응형

댓글