将一个整型数字转换为任意进制字符串
定义函数:char *int2str(int num, int number_base_conversion)
参数:num:要转换的整型数字 number_base_conversion:转换进制
函数说明:将整型数字num转换为对应进制number_base_conversion的字符串
返回值:转换完毕的字符串的首地址
/*
- 输入相应的数字
- 再输入要转换的进制
- 把数字转换为相应进制的字符串
*/
头文件
int2str.h
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 1024
extern char *int2str(int num, int number_base_conversion);
int2str.c
#include "int2str.h"
//翻转字符串函数
static void reverse_str(char *src) //将所调用的函数限定在本文件内可见
{
int i;
int len = strlen(src); //记录src的长度
char tmp;
for (i = 0; i < len / 2; i++)
{
tmp = *(src + i);
*(src + i) = *(src + len - 1 - i);
*(src + len - 1 - i) = tmp;
}
}
char *int2str(int num, int number_base_conversion)
{
static char src[MAX_SIZE];
int i = 0;
while (num != 0) //从个位转换完毕后的字符串是逆序的,例如123-->"321"
{
src[i] = num % number_base_conversion + '0';
num = num / number_base_conversion;
i++;
}
reverse_str(src); //此处是将转换后的字符串翻转
return src;
}
main.c
#include "int2str.h"
int main(int argc, char const *argv[])
{
int num;
int number_base_conversion = 10;
printf("Please input num and conversion base as a space separated:");
scanf("%d %d", &num, &number_base_conversion);
char *result = int2str(num, number_base_conversion);
printf("result is %s\n", result);
return 0;
}
运行截图: