일자 리 를 찾 는 '정수 가 문자열 로 바 뀌 었 습 니 다 - 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에 따라 라이센스가 부여됩니다.