C++中使用strtok函数分割字符串String
string str;getline(cin,str);vector<string> vec;char *p = strtok((char *)str.c_str(), ",");while (p != NULL) {cout<<"p = "<<p<<endl;vec.push_back(p);p = strtok(NULL, ",");}
输入:
a,b
输出:
p = a
p = b
函数原型
char *__cdecl strtok(char *restrict_Str,const char *restrict_Delim)
所以转换了下
(char *)str.c_str() //const char=>char
=========================================
如果想分割成数字,在获取字符后转换下int x = stoi§;
#include <bits/stdc++.h>using namespace std;int main(){string str;int a;while(getline(cin,str)){vector<int> vec;char *p = strtok((char *)str.c_str(), " ");while(p){int a = stoi(p);// int a;// sscanf_s(p,"%d",&a);//这种format也行vec.push_back(a);//转换的数字存储在vec中。p = strtok(NULL," ");}cout<<"pgp21"<<endl;}system("pause");return 0;}