單詞拆分
題目描述
給定一組字元串,裡面含有許多單詞,每個單詞之間都有一個空格隔開,要求單獨輸出每個單詞
題目分析
通過雙指針算法,一端指着單詞頭,另一端去找單詞尾,找到後傳回,并将頭指向尾,繼續尋找,直到找到末尾為止
代碼實作
#include<bits/stdc++.h>
#include<string.h>
const int N = 1010;
using namespace std;
int main(){
// 字元串
char str[N];
cin.getline(str, N);
int len = strlen(str);
for(int i = 0; i < len; i ++){
// 從目前單詞開頭開始讀,讀到空格結束
int j = i;
while(j < len && str[j] != ' ') j ++;
// 逐一輸出目前單詞的字母
for(int k = i; k < j; k++) cout << str[k];
cout << endl; // 換行
// 重新定義開頭
i = j;
}
return 0;
}
輸入
this is a pig
輸出
this
is
a
pig
總結
主要運用了雙指針來進行這道題的分析,雙指針基本都是遵循這種結構進行的
gets
方法已經被淘汰了,是以選擇使用了
getline
,當然還有其他一些輸入方式,可自行嘗試
for(int i = 0; i < n; i++){
while(j = i; check(條件)) j ++;
// 具體邏輯
}