c++string通过指定的分隔符分割字符串-创新互联
通过string::find_first_of()函数找到分割标志在字符串中的位置
string::substr()截取string中的字符串
代码
//功能:通过指定的分隔符分割字符串
//参数1 源字符串
//参数2 被分割后的字符串容器引用
//参数3 分割符号
void split_string(string srcStr,vector&v_splitStr,string splitSymbol){//清空容器
vector().swap(v_splitStr);
while(string::npos != srcStr.find_first_of(splitSymbol)){//获取第一个分隔符之前的文件类型
string strT = srcStr.substr(0,srcStr.find_first_of(splitSymbol));
//将分割的字符加入到容器列表最后
v_splitStr.push_back(strT);
//删除分割字符前面的,保留后面的字符串
srcStr = srcStr.substr(srcStr.find_first_of(splitSymbol)+1,srcStr.size());
}
//最后的一个分割符号后面或者没有匹配到分割符号的字符加入容器列表
v_splitStr.push_back(srcStr);
}
测试
#include#include#includeusing namespace std;
//功能:通过指定的分隔符分割字符串
//参数1 源字符串
//参数2 被分割后的字符串容器引用
//参数3 分割符号
void split_string(string srcStr,vector&v_splitStr,string splitSymbol){//清空容器
vector().swap(v_splitStr);
while(string::npos != srcStr.find_first_of(splitSymbol)){//获取第一个分隔符之前的文件类型
string strT = srcStr.substr(0,srcStr.find_first_of(splitSymbol));
//将分割的字符加入到容器列表最后
v_splitStr.push_back(strT);
//删除分割字符前面的,保留后面的字符串
srcStr = srcStr.substr(srcStr.find_first_of(splitSymbol)+1,srcStr.size());
}
//最后的一个分割符号后面或者没有匹配到分割符号的字符加入容器列表
v_splitStr.push_back(srcStr);
}
int main(int argv,char* argc[]){string strTest = "hello,1;2;3;4;aaa,def";
vectorv_splitStr;
//指定分割符号, ;
split_string(strTest,v_splitStr,",;");
cout<<"分割后的字符串"<::iterator iter = v_splitStr.begin();iter != v_splitStr.end();iter++){cout<<*iter<
效果
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站栏目:c++string通过指定的分隔符分割字符串-创新互联
文章起源:http://cdiso.cn/article/ieigo.html