현재 위치는 - 분류정보망 - 안경정보 - C 언어에서 itoa 의 역할은 무엇이며 어떻게 사용합니까?

C 언어에서 itoa 의 역할은 무엇이며 어떻게 사용합니까?

Itoa 는 널리 사용되는 비표준 C 언어 확장 함수입니다. 표준 C 언어 함수가 아니기 때문에 모든 컴파일러에서 사용할 수 없습니다. 그러나 대부분의 컴파일러 (예: Windows 의 컴파일러) 는 일반적으로 에서 실행됩니다

사용

Char *itoa(int value, char *string, intradix);

헤더 파일:

프로그램 예:

# include & ltstdlib.h & gt

# include & ltstdio.h & gt

Int main ()

{

Int 수 =123456;

Char string [25];

Itoa (숫자, 문자열,10);

Printf("integer = %d string = %s\n ",숫자, 문자열);

0 을 반환합니다

}

/* itoa 함수를 구현하는 소스 코드 */

Char *myitoa(int num, char *str, int radix)

{

/* 색인 테이블 */

Charindex [] = "0123456789 abcdefghijklmnopqrstuvwxyz";

부호 없는 unum/* 중간 변수 *

Int i=0, j, k;

/* unum 값 결정 */

If (radix = =10 & & ampnum & lt0) /* 10 진수 음수 */

{

Unum= (부호 없음)-num;

Str [I++] ='-';

}

Else unum= (부호 없음) num/* 추가 정보 */

/* 역순 */

을 (를) 하다

Str[i++]=index[unum% (부호 없는) 기수];

Unum/= 기수

} while (unum);

Str [I] =' \ 0';

/* 변환 */

If (str [0] = ='-') k =1; /* 소수 음수 */

그렇지 않으면 k = 0;;

/* 원래' /2' 를' /2.0' 으로 변경하여 num 이 16~255 사이에 radix 가 16 과 같을 때 정확한 결과를 얻을 수 있도록 합니다 */

For(j = k;; J< = (I-1)/2.0+k; J++)

{

Num = str [j];

Str [j] = str [I-j-1+k];

Str [I-j-1+k] = num;

}

문자열을 반환합니다

}

Itoa 의 세 번째 매개변수는 숫자를 다른 십진수 시스템으로 변환하는 데 사용됩니다. 예를 들면 다음과 같습니다.

# include & ltstdlib.h & gt

# include & ltstdio.h & gt

인트메인 (void)

{

Int 수 =12345;

Char string [25];

Itoa (숫자, 문자열,10); //십진수 변환

Printf("integer = %d string = %s\n ",숫자, 문자열);

Itoa (숫자, 문자열,16); //16 으로 변환.

Printf("integer = %d string = %s\n ",숫자, 문자열);

0 을 반환합니다

}

출력 결과:

Integer = 12345 string = 12345-설명12345 의 십진수 표현은12345 입니다

Integer =12345 string = 3039-12345 의 16 진수 표현은 0x3039 입니다.

그러나 itoa 는 표준 C 함수가 아니라 Windows 에만 국한된다는 점에 유의해야 합니다. 플랫폼 간 프로그램을 작성하려면 sprintf 를 사용하십시오.

소수로 표시합시다:)

MSDN 의 예

/* 아이타. C: 이 프로그램은 다양한 정수를 변환합니다.

* 다양한 반지름의 문자열 크기입니다.

*/

# include & ltstdlib.h & gt

# include & ltstdio.h & gt

잘못된 탐색기 (잘못된 탐색기)

{

충전 버퍼 [20];

Int I = 3445

드래곤 l =-344115l;

부호 없는 긴 ul =1234567890 ul;

_itoa( I, buffer,10);

Printf ("정수 %d 의 문자열 (기수 10): %s\n", I, buffer);

_itoa( I, buffer,16);

Printf ("정수 %d 에 대한 문자열 (기수 16): 0x%s\n", I, buffer);

_itoa( I, buffer, 2);

Printf ("정수 %d 의 문자열 (기수 2): %s\n", I, buffer);

_ltoa( l, buffer,16);

Printf ("long int% LD (radix16) 문자열): 0x%s\n", l, buffer);

_ultoa( ul, buffer,16);

Printf ("부호 없는 긴 문자열 %lu (radix 16): 0x%s\n", ul, buffer);

}

출력물

정수 문자열 3445 (기수 10): 3445

정수 문자열 3445 (기수 16): 0xd75

정수 3445 (기수 2) 의 문자열:110111/kloc/

긴 정수 문자열 -344 1 15 (기수16): 0xffa bbcd

부호 없는 정수 문자열 1234567890 (기수 16): 0x499602d2

변환할 밑수의 기수를 지정합니다. 값은 1-36 사이인 것 같습니다.

이것은 C 표준 라이브러리의 함수가 아니라 Windows 플랫폼 아래의 확장입니다. Sprintf 는 표준 라이브러리에서 이것보다 더 강력하며, printf 와 비슷한 용도로 사용됩니다.

Char str [255];

스프린트 (str, "%x",100); //는 100 을 16 진수 표현으로 변환하는 문자열입니다.