最近优化代码,特别是在C++中获取string的字串,代码经常会遇到(非常有用且重复的功能函数),对这个功能,我之前一直用substr来获取字串,功能也非常强大。最近发现一个非常好用的stringstream,用它来实现substr的部分功能,代码如下:
#include<sstream>
#include<iostream>
std::string concat(std::string str, int pos, int num)
{
std::streamstring ss;
//
int max_pos = (pos + num > str.size()) ? str.size() : (pos + num);
for(int i = pos; i < max_pos; ++i)
{
//ss << (i == pos ? "" : " " ); //字符串的每个字符后面加上一个空格
ss << str[i];
}
return ss.str();
}
int main(int argc, char** argv)
{
std::string str = " asdfc";
std::string str1 = concat(str, 0, 3);
std::cout << "str: "<<str<<std::endl;
std::cout <<"str1: "<<str1 <<std::endl;
system("pause");
return 0;
}
希望能帮助到大家