一篇文章有若干行,以空行作為輸入結束的條件。統計一篇文章中單詞the(不管大小寫,單詞the是由空格隔開的)的個數。
#include <iostream>
using namespace std;
int k = 0;
int n = 0;
int main() {
char c;
char a[1000];
do
{
cin.get(c);
if(c>='A'&&c<='Z'){ //將大寫轉換為小寫
c=c+32;
}
a[k++] = c; //把字元放入陣列中
} while (c != '\n');
k = k - 1; // k = 有效字元長度
//cout << k << endl;
for (int i = 0; i <= k - 1; i++)
{
if (a[i] == 't' && a[i+1] == 'h' && a[i+2] == 'e' && a[3] == ' ' && k >= 4 && i == 0) { //如果k大於等於4 判斷頭三個是否構成單詞the
n++;
}
if (i >= 1 && k>=5 && a[i - 1] == ' ' && a[i] == 't' && a[i + 1] == 'h' && a[i + 2] == 'e' && a[i + 3] == ' ') { //如果k大於等於5 並要求 i>=1 出現空格the空格 n++
n++;
}
if (i+2 == k-1 && a[i-1]==' ' && a[i] == 't' && a[i + 1] == 'h' && a[i + 2] == 'e') { //當i執行到倒數第三個 判斷最後三個字母是否構成the
n++;
}
if (k == 3 && a[i] == 't' && a[i+1] == 'h' && a[i+2] == 'e' && i == 0) //如果k==3 看這個三個字母是否構成the
{
n++;
}
}
cout << n;
}