C++把字符串分割为字符串数组

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

 

posted @ 2018-09-21 09:19  LackProgramMonkey  阅读(4729)  评论(0编辑  收藏  举报
返回顶部