zoukankan      html  css  js  c++  java
  • 格式字符串分配stl::string

    代码非常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;
    }

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    Maven插件
    Maven 构建生命周期
    Maven POM
    JMeter录制登录测试
    IntelliJ IDEA官方下载地址
    Eplise快捷键
    Eclipse-maven相关配置
    vs2019添加引用出错:对COM组件的调用返回了错误HRESULT E_FAIL
    Java学习--多线程(1)
    SQL Server查询重复数据
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4746879.html
Copyright © 2011-2022 走看看