#include<iostream>
using namespace std;

void reversePartStr(char str[], int first, int last)
{
	char tmp;
	int length = last - first + 1;

	int i;
	for(i = 0; i < length / 2; i++)
	{
		tmp = str[first + i];
		str[first + i] = str[last - i];
		str[last - i] = tmp;
	}	
}

void myIntToArray(int n, char str[])
{
	int i = 0;
	while(n) //范式
	{
		// 'x' - '0' = x (x = 0, 1, 2,..., 9)
		str[i++] = n % 10 + '0';
		n /= 10;
	}
	
	int length = i;
	str[length] = '\0'; //千万别掉了
	reversePartStr(str, 0, length - 1);
}

int main()
{
	int n = 1234;
	char str[20];
	myIntToArray(n,str);
	cout << str << endl;

	return 0;
}


      其实,可以直接用itoa. 如果不用itoa, 还可以用sprintf, _snprintf/snprintf,  这样更简单。 

      在面试笔试机试的时候, 一个sprintf, 可能就是救命的法宝。 最近, 一个同事就碰到了这样一个笔试题目: 如果判断某一整数是否回文?(用C语言写程序)




本文转载:CSDN博客