编写一个程序,将整数转换成字符串:void itoa(int, char);C语言
时间: 2023-06-06 15:05:30 浏览: 191
中没有内置的 itoa() 函数,需要自己编写实现。以下是示例代码:
void itoa(int n, char s[]) {
int i, sign;
if ((sign = n) < 0) // 记录符号
n = -n; // 把 n 变为正数
i = 0;
do {
s[i++] = n % 10 + '0'; // 取下一个数字
} while ((n /= 10) > 0); // 删除该数字
if (sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s); // 反转字符串
}
其中 reverse() 函数可以按照以下实现:
void reverse(char s[]) {
int i, j;
char c;
for (i = 0, j = strlen(s)-1; i<j; i++, j--) { // i 从头开始,j 从尾部开始,两两交换字符
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
相关问题
用c语言编写一个程序,将整数转换成字符串:void itoa(int,char)
在C语言中,可以使用itoa函数将整数转换为字符串。itoa函数的原型如下:
```c
void itoa(int num, char str[]);
```
其中,num是要转换的整数,str是用于存储转换结果的字符数组。
下面是一个示例程序,演示了如何使用itoa函数将整数转换为字符串:
```c
#include <stdio.h>
#include <stdlib.h>
void itoa(int num, char str[]) {
int i = 0;
int sign = 0;
// 处理负数
if (num < 0) {
sign = 1;
num = -num;
}
// 将每一位数字转换为字符,并存储到字符数组中
do {
str[i++] = num % 10 + '0';
num /= 10;
} while (num > 0);
// 添加负号
if (sign) {
str[i++] = '-';
}
// 字符串反转
int j;
for (j = 0; j < i / 2; j++) {
char temp = str[j];
str[j] = str[i - j - 1];
str[i - j - 1] = temp;
}
// 添加字符串结束符
str[i] = '\0';
}
int main() {
int num = -12345;
char str[20];
itoa(num, str);
printf("转换结果:%s\n", str);
return 0;
}
```
运行上述程序,输出结果为:
```
转换结果:-12345
```
C语言编写一个程序,将整数转换成字符串:void itoa(int,char);
非常感谢您的提问!以下是将整数转换成字符串的 C 语言程序:
void itoa(int num, char* str) {
int i = 0, sign = 0;
if (num < 0) {
sign = 1;
num = -num;
}
do {
str[i++] = num % 10 + '0';
num /= 10;
} while (num > 0);
if (sign) {
str[i++] = '-';
}
str[i] = '\0';
reverse(str);
}
其中,reverse 函数是将字符串反转的函数,可以自行实现。希望能对您有所帮助!
阅读全文