学习笔记24- CC++ 字符串分割函数

xiaoxiao2021-02-28  98

字符串分割

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

方法1

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

#include<stdio.h> #include<string.h> int main() { char s[]="a,b,c,d"; const char *key=","; char *p; p=strtok(s,key); while(p) { printf("%s\n",p); p=strtok(NULL,key); } printf("\n"); return 0; }

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

方法2

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

#include<iostream> #include<string> #include<vector> using namespace std; void split(const string&s,vector<string>&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; vector<string>v; split(s,v,","); for(int i=0;i<v.size();i++) cout<<v[i]<<endl; return 0; }
转载请注明原文地址: https://www.6miu.com/read-82259.html

最新回复(0)