使用c或者c++,封装一个类型转换的函数,把所有类型转换为char*,函数的形参是可变的,注释为简体中文
时间: 2023-11-28 13:47:57 浏览: 144
c++ 各种数据类型的转换的小函数
以下是一个简单的封装类型转换为 char* 的函数,可以接受可变数量和类型的参数:
```c++
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* convert_to_char(const char* format, ...)
{
va_list args;
va_start(args, format);
// 计算输出字符串长度
int length = vsnprintf(NULL, 0, format, args) + 1;
// 分配字符串内存
char* result = (char*)malloc(length);
// 重新开始变量参数列表
va_start(args, format);
// 将输入值转换为字符串
vsnprintf(result, length, format, args);
// 关闭变量参数列表
va_end(args);
return result;
}
```
该函数使用了可变参数列表,将输入值转换为字符串,并返回一个指向转换后的字符串的指针。
示例用法:
```c++
int main()
{
int num = 10;
float fnum = 3.14;
char* str = "Hello World!";
char* result = convert_to_char("数字:%d 浮点数:%f 字符串:%s", num, fnum, str);
printf("%s\n", result);
free(result);
return 0;
}
```
输出结果为:
```
数字:10 浮点数:3.140000 字符串:Hello World!
```
阅读全文