实现字符串拼接(可变参数的)

因为工作需要,需要频繁用的字符串拼接,参数还不固定,所以写了下面的例子,算是给自己的记录

#include "stdafx.h"
#include <iostream>
#include <string>
#include <sstream> 

using namespace std;

template<class T>

void addString(string& strItem, T arg)
{
	std::ostringstream oss;
	std::string strValue = "";
	oss << arg;
	strValue = oss.str();
	strItem += strValue;
}

template<class... Args>
std::string stringOutput(Args... args)
{
	std::string strRet;
	int arr[] = { (addString(strRet, args), 0)... };
	return strRet;
}
int main()
{
	string str = "qwe";
	char buf[12] = { 0 };
	memcpy(buf, str.c_str(), str.length());
	std::cout << stringOutput("你好~~~", 1234, "OKk", 1.23546, buf, str);

    return 0;
}

  

原文地址:https://www.cnblogs.com/alinh/p/9025858.html

时间: 2024-11-06 10:00:09

实现字符串拼接(可变参数的)的相关文章

NSMutableString,可变字符串,拼接,删除,插入,替换

<span style="font-size:18px;"> NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"]; //对于可变字符串的增删改方法, 都是在原字符串基础上进行修改, 所以修改之后的原字符串的内容发生变化, 所以无需返回值 //1 在原字符串基础上拼接Frank [str appendFormat:@"Frank"]; NSLog

volatile,可变参数,memset,内联函数,宽字符窄字符,国际化,条件编译,预处理命令,define中##和#的区别,文件缓冲,位域

 1.volatile:要求参数修改每次都从内存中的读取.这种情况要比普通运行的变量需要的时间长. #include <stdio.h> #include <stdlib.h> #include <time.h> void main() { time_t start, end; double res = 0; time(&start);  //获取时间,传递给start //volatile强制每次从内存读取 volatile int i; for (i =

oracle入门(8)——实战:支持可变参数、多种条件、多个参数排序、分页的存储过程查询组件

[本文介绍] 学了好几天,由于项目需要,忙活了两天,写出了个小组件,不过现在还只能支持单表操作.也没考虑算法上的优化,查询速度要比hibernate只快了一点点,可能是不涉及多表查询的缘故吧,多表的情况下才更快. 经非专业的测试,在有分页的情况下,在300万条数据里面查询的时间保持在0.1秒内.相同查询条件+分页的情况下,hibernate 用时0.3秒内. 不分页的条件下,查出来的数据越多,时间越长,时间长的话,跟hibernate相相比就没什么优势了. [思路] 我的思路是从java传来”字

五分钟学Java:可变参数究竟是怎么一回事?

在逛 programcreek 的时候,我发现了一些专注基础但不容忽视的主题.比如说:Java 的可变参数究竟是怎么一回事?像这类灵魂拷问的主题,非常值得深入地研究一下. 我以前很不重视基础,觉得不就那么回事嘛,会用就行了.就比如说今天这个主题,管它可变不可变呢,不就是个参数嘛,还能有多大学问--抱着这种态度,我一直横行江湖近十载(苦笑).可等到读者找我提一些基础的问题时,我几乎回答不上来,感觉知识是散的,或者是浮于表面的.幸好最近一段时间,我开始幡然醒悟,开始不放过任何一个细节,渐渐地,有点"

可变参数省略号使用简介

C允许定义形参个数和类型不确定的函数.例如,C语言中的标准函数printf便使用这种机制.在声明不确定形参的函数时,形参部分可以使用省略号“…”代替.“…”告诉编译器,在函数调用时不检查形参类型是否与实参类型相同,也不检查参数个数. 如: [[email protected] exercise]# vi chang.c#include <stdio.h>int mult(int x , int y , const char * fmt , ...){ int result = x * y; i

Objective-C 字符串与可变字符串

知识点 1.NSString 类的使用 2.NSMutableString 类的使用 ========================================== NSString 1.NSString对象和C类型字符串做对比 // OC字符串是对象         c字符串只是单个字母拼接 // oc字符串定义需要@       c字符串不需要 // 打印的时候OC字符串%@     c字符串打印%s 2.c语言字符串和NSString的转换 stringWithCString:enc

NSString用法,object-C数组以及字符串拼接和分割

一.介绍使用NSString创建一个字符串的代码如下: #import <Foundation/Foundation.h>int main (int argc, char *argv[]){    NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init]; NSString *[email protected]"Programming is fun";    NSLog(@"%@",str); [poo

[Java5新特性]可变参数

什么是可变参数 Java基础内容中,关于函数具有一种特性:重载,如果我们要完成多个数字想加的需求,可以按照以下代码完成: public class Demo { public int add(int a, int b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; } public static void main(String[] args) { int sum1 = new Demo().a

Java之可变参数

Java中支持可变参数 意思就是:参数的个数可以根据需要写,你可以写1个.2个.3个....他们都被保存到一个参数的数组中. 但是这些参有一些约束:他们必须是同类型的,比如都是String字符串类型. 同时,可变参数的函数中的参数的写法也有约束:比如,可变参数的数组必须写在参数的最后,否则程序不知道你的参数到底有多少个. 例子:输出可变参数中的参数值 public class VariableArgument {    public static void main(String[] args)