将格式化字符串赋给stl::string
2014-07-25 15:57
239 查看
代码很简单,就不解释了,直接上代码:
#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; }
相关文章推荐
- STL之string
- string源码分析 ——转载 http://blogs.360.cn/360cloud/2012/11/26/linux-gcc-stl-string-in-depth/
- STL string 报错问题
- STL之String总结
- STL----vector与string
- 详细解说STL string
- 简单模拟STL库中string的实现
- C++ STL string 大小写转换时的 no matching function for call to ‘transform 错误
- STL的string和wstring
- STL--string用法(3)
- stl string 分解 split
- HDU 4167 User Names【string stl】
- STL string与CString的Unicode字符集
- STL 库其中的 std::string用法总结
- 详细解说STL string
- 一个使用STL::string时遇到的诡异bug
- STL: string:erase
- stl string 源代码分析
- stl---<string>的用法
- STL string基本字符系列容器