2008년 7월 2일 수요일

CString 변수 값이 숫자 값인지 판별 - atoi()에 대하여

CString 변수 값이 숫자 값인지 판별 - atoi()에 대하여





 일반적으로 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;

사용자 삽입 이미지





@

댓글 없음:

댓글 쓰기