C++把字串分割為字串陣列
阿新 • • 發佈:2018-12-11
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