C++如何把一个字符串分割到字符串数组里呢?
为了让读者轻松了解,我们用一个for循环来实现,不借助strtok()以及其他函数;(先上代码)
#include <iostream>
#include <string>
using namespace std;
string w,k[1000002];
int main() {
getline(cin, w); //首先输入一个字符串
int s = 0;
for (int i = 0; i < w.length(); i++) { //将字符串分割成字符串数组
if (w[i] == ' ') { //以空格作为分隔符
s++;
continue;
}
k[s] += w[i]; //将分割好的字符串放到K数组里
}
for(int i = 0;i<=s;i++){ //输出分割好的字符串
cout<<k[i]<<endl;
}
system("pause");
return 0;
}
getline()这个函数是输入整行字符串以\n结束,也就是以回车结束;
我们需要声明一个足够大的字符串数组来存放分割后的数据,在这里我以数组k举例;
s代表一共分割成了几个字符串到数组,这里注意s是以0开始,我们可以用s作为k数组的边界;
原理是把字符串每一个字符都遍历一遍,并储存到字符串数组,如果遇到分隔符就将数组下标加一,并跳出此次循环,不保存字符到数组;
我们来举个例子,如果我输入了字符串"159 357 159 357",程序将输出:
159
357
159
357