본문 바로가기

Programming/C & C++

문자형식과 숫자형식으로 상호 변형 (atoi, itoa)

(헤더파일 : stdlib.h, wchar.h)

문자형식을 숫자형식으로

int atoi (const char *str);                          // 문자열을 숫자형식으로 바꾼다.
 - str : 숫자형식으로 변환할 문자열의 포인트

int _wtoi(const wchar_t *str);                   // 유니코드 문자열을 숫자형식으로 바꾼다.
 - str : 숫자형식으로 변환할 문자열의 포인트

반환값 :
 - 입력된 str값을 유효 숫자 형식으로 바꿉니다. 예로 "abc123"이 있으면 "abc"는 문자 형식이므로 삭제.
    "123"만 숫자 형식 123으로 변환됩니다. 만일 "abcd"같은 유효 숫자 형식이 없으면 0이 반환됩니다.
    변환되는 값이 integar범위보다 크거나 작으면 INT_MIN 혹은 INT_MAX가 반환이 됩니다.

ex)
char str[] = "12345";    //변환할 문자열
int n = atoi(str);           //n이라는 integar변수에 12345를 저장한다.


ㅁ 숫자형식을 문자형식으로

char* _itoa(int value, char* str, int radix);                  // 숫자형식을 문자열로 바꾼다.
 - value : 변환할 숫자
 - str : 문자가 저장될 메모리의 첫번째 주소
 - radix : 진수 (예 2진수, 10진수)

wchar_t* _itow(int value, wchar_t* str, int radix);      // 숫자형식으로 유니코드 문자열로 바꾼다.
 - value : 변환할 숫자
 - str : 문자가 저장될 메모리의 첫번째 주소
 - radix : 진수 (예 2진수, 10진수)

반환값 :
  - 문자열 포인터를 돌려준다. 특별한 에러값은 없다.

ex)
char* buffer[65];        //문자가 저장될 버퍼
_itoa(32, buffer, 10);    //32란 숫자를 10진수로 buffer에 저장한다
반응형