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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)