1. 程式人生 > >C++把字串分割為字串陣列

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