学*笔记24

发布于:2021-10-22 12:16:38

字符串分割

因为C++没有类似Python,Java那样的split函数,所以需要自己实现字符串分割。


方法1

可以先将string类型转换成char数组,然后使用C语言的strtok函数,进行字符串分割:


#include
#include
int main()
{
char s[]="a,b,c,d";
const char *key=",";
char *p;
p=strtok(s,key);
while(p)
{
printf("%s
",p);
p=strtok(NULL,key);
}
printf("
");
return 0;
}

上面代码将字符串”a,b,c,d”分割成a b c d四个子串。


方法2

自己写一个split函数,把string的子串分到一个string类型的vector里面。


#include
#include
#include
using namespace std;
void split(const string&s,vector&v,const string&key)
{
string::size_type pos1=0;
string::size_type pos2=s.find(key);
while(pos2!=string::npos)
{
v.push_back(s.substr(pos1,pos2-pos1));
pos1=pos2+key.size();
pos2=s.find(key,pos1);
}
if(pos1!=s.length())
v.push_back(s.substr(pos1));
}
int main()
{
string s;
cin>>s;
vectorv;
split(s,v,",");
for(int i=0;i cout< return 0;
}

相关推荐

最新更新

猜你喜欢