C语言的sprintf
?我们在一些场景下需要先将字符串拼接起来再使用。
如: 我们要输出一个数组中的数据,输出的格式为--第几个数据为什么? 在这种情况下每次输出的字符串都是不一样的,我们可以通过循环来不断增加i的值,通过字符串的拼接实现。
char name[1024];
for(int i = 1; i <= 5 ; i++){
sprintf(name,"输出的是第%d个数据",i);
printf("%s",name);
}
?代码中,就是for循环和字符串拼接函数实现了输出字符串的改变。(在代码中有很多时候都会使用)
sprintf函数,就是将右边的字符串放到name字符数组中。?
?
c++的stringstream?
C语言中的拼接有一定的弊端,因为我们使用数组来存放拼接的字符串,我们不知道字符串的大小的,只能尽可能的大,这样就会存在浪费空间的情况。?
也可能空间不够,也会造成问题。?
c++中可以使用stringstream对象实现?
#include <sstream>
stringstream ret;
for(int i = 1; i <= 5; i++){
ret<<"第"<<i<<"个数据";
}
ret.str(); // 将ret转化为string型
上面代码使用了stringstream,? 需要导入头文件<sstream> ,
最后,c++中字符串是string,使用stringstream拼接的字符串是stringstream的需要调用函数转换成string类型。?
?