일자 리 를 찾 는 '정수 가 문자열 로 바 뀌 었 습 니 다 - itoa 구현'
/***************
****************/
void convIntToStr(int n)
{
int signFlag = 0;
char str[10];
int bitsNum = 0;
int i = 0;
if(n < 0)
{
signFlag = 1;
n = -n;
}
for( ; ;)
{
unsigned int quotient = 0;
unsigned int remainder = 0;
quotient = n / 10;
remainder = n % 10;
str[bitsNum++] = remainder + '0';
n = quotient;
if(quotient == 0)
break;
}
if(1 == signFlag)
printf("-");
for(i = bitsNum -1; i >= 0; --i )
printf("%c",str[i]);
//putchar(str[i]);
}
//" "
void convIntToStr2(int n)
{
if(n < 0)
{
putchar('-');
n = -n;
}
if( n / 10)
convIntToStr2(n / 10);
putchar(n % 10 + '0');
}
//
void reverse(char s[])
{
int i = 0, j = 0;
char c = '0';
for(i = 0, j = strlen(s) - 1; i < j; ++i, --j)
{
c = s[i]; s[i] = s[j]; s[j] = c;
}
}
// “c ” 。
void convIntToStr3(int n)
{
int sign = 0, i = 0;
char str[10];
char * p = str;
if((sign = n) < 0)
n = -n;
do{
str[i++] = n % 10 + '0';
}while((n /= 10) > 0);
if(sign < 0)
str[i++] = '-';
str[i] = '\0';
reverse(str);
while(*p)
putchar(*p++);
}
/**
* “ ”---- 。。。
*/
char * itoa(int value, char * result, int base)
{
// check that the base if valid
if (base < 2 || base > 36)
{
*result = '\0';
return result;
}
char * ptr = result, * ptr1 = result, tmp_char;
int tmp_value;
do {
tmp_value = value;
value /= base;
*ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz" [35 + (tmp_value - value * base)];
} while(value);
// Apply negative sign
if (tmp_value < 0)
*ptr++ = '-';
*ptr-- = '\0';
while(ptr1 < ptr)
{
tmp_char = *ptr;
*ptr-- = *ptr1;
*ptr1++ = tmp_char;
}
return result;
}
테스트 에 틀림 이 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.