项目中要用到文件操作输出一些结构体信息,包括一些int型的数字,为了直观,需要转换成字符串,虽然c语言提供了这种函数,但还是想自己从底层造个轮子。思路:把int的位数记住,申请位数加1的内存(多一个存'\0')。把每一个数字转换成字符存入。
// 整型转字符串.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include "pch.h"
#include <iostream>
using namespace std;
static void int_change_str(int num,char **str)
{
if (num == 0) //num为0 直接返回
{
*str = (char*)malloc(sizeof(char)+1);
**str = '0' + 0;
(*str)[1] = '\0';
//printf("%s\n", *str);
return;
}
int weishu = 0;//记录num有多少位
char *temp = (char*)malloc(sizeof(char)*100);//倒序暂存 100字节
while (num!=0)
{
temp[weishu] = '0' + num % 10;
num /= 10;
weishu++;
}
*str = (char*)malloc(sizeof(char)*weishu + 1);
for (int i = 0; i < weishu; i++)
{
(*str)[i] = temp[weishu - i - 1];
}
(*str)[weishu] = '\0';
//printf("%s\n", *str);
}
int main()
{
char *str = NULL;
int num = 1234567;
int_change_str(num, &str);
printf("%s\n", str);
std::cout << "Hello World!\n";
}
1234567
Hello World!