编写一个程序,将整数转换成字符串:void itoa(int, char);C语言代码。并在main函数中调用。
时间: 2023-06-06 15:05:20 浏览: 108
以下是C语言代码:
#include <stdio.h>
#include <stdlib.h>
void itoa(int num, char str[]) {
int i = 0;
while (num > 0) {
str[i++] = (num % 10) + '0';
num = num / 10;
}
str[i] = '\0';
int len = i;
for (i = 0; i < len / 2; i++) {
char temp = str[i];
str[i] = str[len - 1 - i];
str[len - 1 - i] = temp;
}
}
int main() {
int num = 12345;
char str[20];
itoa(num, str);
printf("The string representation of %d is %s\n", num, str);
return 0;
}
相关问题
c语言用递归函数将一个整数n转换成字符串。
以下是用递归函数将整数n转换成字符串的C语言代码:
```c
#include <stdio.h>
void itoa(int n, char s[])
{
static int i = 0;
if (n / 10)
itoa(n / 10, s);
else {
i = 0;
if (n < 0)
s[i++] = '-';
}
s[i++] = abs(n) % 10 + '0';
s[i] = '\0';
}
int main()
{
int n = -12345;
char s[20];
itoa(n, s);
printf("%s\n", s); // 输出 "-12345"
return 0;
}
```
在递归函数中,首先判断n是否大于等于10,如果是,则递归调用函数将n/10转换为字符串,然后将余数转换为字符保存到s数组中。如果n小于10,则将i初始化为0,并判断n是否小于0,如果是则将负号保存到s数组中。最后将s数组末尾设置为'\0',表示字符串结束。
用C语言递归算法将整数转换成字符串的过程通常涉及将数字除以10取余数,并将余数加入到结果字符串的开头,直到商为0为止。以下是用Python实现的一个简单示例:
在C语言中,你可以使用类似的方法实现递归转换整数为字符串。这里是一个简单的C函数实现:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义一个字符数组作为临时存储字符串结果
#define MAX_DIGITS 100
char buffer[MAX_DIGITS];
// 递归函数用于转换整数到字符串
void itoa(int num, char *str) {
if (num == 0) { // 当num为0时结束递归
*str = '\0'; // 添加空字符终止字符串
return;
}
// 计算并存储当前位的值
str[0] = '0' + num % 10;
str++;
// 递归调用itoa函数,将num更新为商
itoa(num / 10, str);
}
// 调用itoa函数并将结果复制到固定大小的buffer
char* int_to_string(int number) {
int len = 0;
while (number > 0) {
number /= 10;
len++;
}
buffer[len] = '\0';
itoa(number, buffer);
// 从右向左填充前导零
for (int i = 0; i < len; ++i) {
buffer[i] = buffer[len - i - 1];
}
return buffer;
}
int main() {
int num = 483;
char *result = int_to_string(num);
printf("将%d转换成字符串的结果是:%s\n", num, result);
free(result); // 释放内存
return 0;
}
```
阅读全文