扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
OS:win 10
IDE:Visual Studio 2017
sprintf
是一种 C 风格的字符串与数字拼接的方式,因为在 C 中没有 string 这种数据类型,所以它是将 char 类型的数据和数字类型(int, long, float 等)拼接int sprintf(char *buffer,const char *format [,argument] ...);
sprintf
代表 “string printf”。它将输出数据存储在buffer
中#includevoid ExampleSprintf()
{int a = 1, b = 2;
float c = 5.5;
char srcBuf[7] = "noname";
char destBuf[15] = {0 }; // 初始化为 0 字符
int res = sprintf(destBuf, "%d%s%d%.1f", a, srcBuf, b, c); // .1f 表示仅输出小数点后 1 位
std::cout<< destBuf<< std::endl; // 1noname25.5
std::cout<< "res: "<< res<< std::endl; // 11
}
【注】char
类型的指针和数组都可以
to_string()
将数字转换成 string 类型,再进行拼接string to_string ( xxx val);
其中 xxx 可以是诸如int
,long
,long long
,float
,double
等这一类型#include#includevoid ExampleTo_String()
{int a = 1, b = 2;
float c = 5.5;
std::string srcString = "noname";
std::string destString;
destString = std::to_string(a) + srcString + std::to_string(b) + std::to_string(c);
std::cout<< destString<< std::endl; // 1noname25.500000
}
【注】要使用 string 和to_string()
需要引入头文件
【注】to_string()
不支持格式化浮点类型的数据,但你可以通过其它方式截断小数点后的内容
char * itoa ( int value, char * str, int base );
在这里 value 表示要转换的 int 的值,str 表示最终转换成的字符串,base 表示进制,一般而言当传入 base 为 10 时,表示基于 10 进制转换void Exampleitoa()
{int i = -1;
char buffer[30];
_itoa(i, buffer, 10);
std::cout<< buffer<< std::endl; // -1
// 此处已经是字符串形式的 -1 了
}
【注】当 base 为 10 的时候,且当 value 为负数,那么转换后的字符串结果会自动加上一个负号(-),而其他进制的时候,value 会被视为无符号
【注】str 这个参数必须要足够容纳转换后的字符串大小
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流