规定26进制为字母A~Z对应1~26,使用C语言写一段函数,要求输入int参数,求出对应的26进制数
时间: 2024-02-11 21:06:06 浏览: 110
可以使用以下函数实现将一个十进制整数转换为26进制数字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BASE 26
char *to_base26(int num) {
int len = 0, n = num;
while (n) {
len++;
n /= BASE;
}
if (len == 0) {
len = 1;
}
char *str = (char *) malloc(len + 1);
if (str == NULL) {
return NULL;
}
str[len] = '\0';
while (len--) {
str[len] = num % BASE + 'A' - 1;
num /= BASE;
}
return str;
}
int main() {
int num = 123456;
char *str = to_base26(num);
if (str != NULL) {
printf("%d to base26: %s\n", num, str);
free(str);
} else {
printf("Failed to allocate memory.\n");
}
return 0;
}
```
该函数先计算出将整数转换为26进制数需要的字符串长度,然后使用动态内存分配分配足够的空间存储结果。最后从低位到高位依次计算每一位的值,将其转换为对应的字符,最终得到26进制数字符串。
阅读全文