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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM