要求:
编写一个程序,将整数转换成字符串:void itoa(int,char);
代码如下:
#include <iostream>
using namespace std;
void itoa(int i, char a[]) {
int length = 0;
int negative = 0; // 记录是否为负整数
if (i < 0) { // 对负整数的处理
negative = 1;
i = -i;
}
do{
a[length] = i % 10 + '0'; // 利用数字在ASCII中与字符'0'的相对位置
length++;
i /= 10;
} while (i != 0);
if (negative) { // 如果是负数,添加负号
a[length] = '-';
length++;
}
for (int j = 0; j < length / 2; j++) { // 反转数组
char temp = a[j];
a[j] = a[length - 1 - j];
a[length - 1 - j] = temp;
}
a[length] = '\0'; // 字符串以'\0'结束
}
int main()
{
char a[12]; // 足够存储32位整数、负号'-'和字符串结束符'\0'
itoa(-65109, a);
cout << a;
}
运行效果:
(打断点监视a)