请编写一个c函数,该函数可以实现将一个整数转为任意进制的字符串输出
时间: 2023-04-24 11:00:43 浏览: 124
将无符号的八进制字符串转换为十进制整数。-c语言教程
以下是一个将整数转为任意进制的字符串输出的C函数示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 将整数转为任意进制的字符串输出
void int_to_base(int num, int base, char *str) {
char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i = ;
int sign = num < ? -1 : 1;
num = abs(num);
while (num) {
str[i++] = digits[num % base];
num /= base;
}
if (sign == -1) {
str[i++] = '-';
}
str[i] = '\';
strrev(str);
}
int main() {
int num = 123456;
int base = 16;
char str[100];
int_to_base(num, base, str);
printf("%d in base %d is %s\n", num, base, str);
return ;
}
```
该函数接受三个参数:整数num,进制base和字符串指针str。函数首先判断num的符号,然后将其转为正数。接着,函数使用一个while循环,将num不断除以base,将余数转为对应的字符,并将其存储到str中。最后,如果num是负数,函数在str的最前面添加一个负号,并在字符串末尾添加一个空字符。最后,函数使用strrev函数将字符串翻转,以得到正确的输出。
在上面的示例中,我们将整数123456转为16进制的字符串输出。输出结果为:
```
123456 in base 16 is 1E240
```
如果要将整数转为其他进制的字符串,只需要修改base的值即可。例如,将整数123456转为8进制的字符串,只需要将base的值改为8即可。
阅读全文