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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值