#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语言写程序)