代码非常easy,不解释,直接在代码:

#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的更多相关文章

  1. JSon_零基础_001_将布尔类型数组转换为JSon格式字符串,返回给界面

    将布尔类型数组转换为JSon格式字符串,返回给界面 需要导入包: 编写bean: package com.west.webcourse.po; /** * 第01步:编写bean类, * 下一步com ...

  2. json格式字符串与java.util.Map的互转(借助于jackson.jar)

    package com.test.javaAPI.json; /** * json工具类 * * @author Wei * @time 2016年10月2日 下午4:25:25 */ public ...

  3. string类(三、string.format格式字符串)

    参考连接: http://www.cnblogs.com/luluping/archive/2009/04/30/1446665.html http://blog.csdn.net/samsone/a ...

  4. STL --> string类字符串

    基本使用方法 一.输入 string s: cin >> s; getline(cin, s) ; //使用默认的'\n'作为终止符 getline(cin, s, '!') ; //以' ...

  5. stl string

    10.2.1 STL的string 1String概念 ²  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都 ...

  6. [转] 深入剖析 linux GCC 4.4 的 STL string

    本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术. 平台:x86_64-redhat-linux gcc ver ...

  7. STL - string(典型操作demo)

    1String概念  string是STL的字符串类型,通常用来表示字符串.而在使用string之前,字符串通常是用char*表示的.string与char*都可以用来表示字符串,那么二者有什么区别呢 ...

  8. STL——string

    C++之string类型详解 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够.字符串长度等等,而且作为一个泛型类出现,他集成的操作函 ...

  9. 深入剖析 linux GCC 4.4 的 STL string

    转自: 深入剖析 linux GCC 4.4 的 STL string 本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Wri ...

随机推荐

  1. tomcat自动URLDecode解码问题(+号变空格)

    最近项目中出现一个问题,就是前段调后端接口,参数带+号,传到后端后+号自动URLDecode成空格了. 1.问题排查 条件:tomcat配置server.xml有URIEncoding="U ...

  2. 23、V4L2应用编写及各个ioctl涉及结构体说明分析

    常用的结构体在内核目录include/linux/videodev2.h中定义 struct v4l2_requestbuffers  //申请帧缓冲,对应命令VIDIOC_REQBUFSstruct ...

  3. java开发SSM框架的搭建(SpringMVC+Spring+MyBatis)

    因为某些原因,重装系统,java-web开发尽管顺手,但烦人的一点是开发环境的搭建.几乎相同折腾了一整天,笔者在这里把SSM开发环境的搭建又一次清理一遍,以飨读者.也供自己以后參考.善于总结,是做好每 ...

  4. C语言之基本算法11—牛顿迭代法求平方根

    //迭代法 /* ================================================================== 题目:牛顿迭代法求a的平方根!迭代公式:Xn+1 ...

  5. Java NIO详细介绍

    不错的文章,推荐一下. http://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html JavaNIO非堵塞技术实际是采取Re ...

  6. 证明的手段 —— 不失一般性的(WLOG)

    不失一般性是数学中一个常见的表达.不失一般性(Without loss of generality,缩写:WLOG.WOLOG 或 w.l.o.g.)是数学中一个常见的表达. 如果给不相等的两数,a, ...

  7. IIS服务器能支持10万并发

    服务器能支持10万并发由于一个项目的访问量越来越大,从原来的几百个,增加到现在50多万个每天,所以阿里的服务器也扛不住了,于是就想办法,查了N多资料,总结了以下方法,才解决这问题,每天一共访问量50多 ...

  8. css3 border img 边框图片

    摘自http://www.html-js.com/article/CSS3-tutorial-css3borderimage-frame-image-Xiangjie-on border-image摘 ...

  9. php 中英文字符串截取,字符串长度

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...

  10. 有关下拉列表、复选框、单选按钮、iframe等jquery处理方法

    1.jquery验证复选框互斥选项,代码如下: //验证复选框中的互斥选项 function checkData(name, val1, val2){ //获取所有checkbox值 var chec ...