C语言,用递归法将一个整数n转换成字符串。n的位数不固定,可以是任意位数的整数。
时间: 2023-06-02 07:05:55 浏览: 106
usart_整数转字符串_
好的,这个问题可以回答。以下是一个用递归法将整数n转换成字符串的C语言函数:
```c
void int_to_str(int n, char *s) {
if (n == 0) {
s[0] = '0';
s[1] = '\0';
return;
}
if (n < 0) {
*s++ = '-';
n = -n;
}
if (n / 10 == 0) {
*s++ = '0' + n;
*s = '\0';
return;
}
int_to_str(n / 10, s);
while(*s) s++;
*s++ = '0' + n % 10;
*s = '\0';
}
```
函数的第一个参数是需要转换的整数n,第二个参数是存储转换结果的字符串s。函数递归地将n除以10,直到n为0或小于10,然后将每一位数字转换成对应的字符,并存储到s中。注意,函数会处理负数,并在s中加上负号。示例代码如下:
```c
int main() {
int n = -123456789;
char s[100];
int_to_str(n, s);
printf("%d -> %s\n", n, s);
return 0;
}
```
输出结果为:
```
-123456789 -> -123456789
```
阅读全文