首页 > 代码库 > 将格式化字符串赋给stl::string
将格式化字符串赋给stl::string
代码很简单,就不解释了,直接上代码:
#include <cstdio> #include <cstdarg> #include <iostream> using namespace std; //功能:将格式化字符串赋给stl::string //参数:和printf的参数一样 //返回值:返回格式化后的string类 string StringFormat(const char *format, ...) { string result; //将字符串的长度初始化为1024 int tlen = 1024; int len = 0; result.resize(tlen); //为string赋值 va_list list; va_start(list, format); len = vsnprintf((char*)result.c_str(), tlen, format, list); //如果结果字符串长度比初始长度长,就重新设置字符串长度,然后再赋值 if( len >= tlen ) { tlen = len + 1; result.resize(tlen); len = vsnprintf((char*)result.c_str(), tlen, format, list); } va_end(list); //删除字符串尾部的0字符 result.erase(len); return result; } //测试例子 int main() { string str = StringFormat("Hello, world: %d, %lf %s", 435, 5462.56/54, "man"); cout << str << endl; return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。