编写c代码将一个整数n转换成字符串(运用大一c语言知识,不用递归法)
时间: 2024-01-08 08:04:55 浏览: 82
以下是将整数n转换为字符串的C代码,运用大一C语言知识:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 12 // 2^32-1的位数为10,再加上负号和\0
char* int_to_string(int n) {
char str[MAX_LEN];
int len = 0, i = 0;
if (n == 0) {
len = 1;
} else if (n < 0) {
len = 1;
n = -n;
}
int tmp = n;
while (tmp > 0) {
len++;
tmp /= 10;
}
if (n < 0) {
str[i++] = '-';
n = -n;
}
do {
str[i++] = n % 10 + '0';
n /= 10;
} while (n > 0);
str[i] = '\0';
for (int j = 0; j < i / 2; j++) {
char tmp = str[j];
str[j] = str[i - j - 1];
str[i - j - 1] = tmp;
}
char* ret = (char*)malloc((i + 1) * sizeof(char));
for (int j = 0; j <= i; j++) {
ret[j] = str[j];
}
return ret;
}
int main() {
int n = -12345;
char* str = int_to_string(n);
printf("%s\n", str);
free(str);
return 0;
}
```
这个函数首先计算整数的位数,然后将整数转换为一个固定长度的字符数组 `str`,最后动态分配一个字符串数组,将字符数组的内容复制到字符串数组中,并返回这个字符串数组的指针。在主函数中,我们将一个整数传递给这个函数,并打印输出转换后的字符串。注意,我们还需要释放分配的字符串数组的内存。
阅读全文