[C_ST63-易] 尋找單字中的母音字母數量
問題描述:
英文字母中有五個母音,分別是 a 、 e 、 i 、 o 、 u ,請寫一個程式,讓使用者可以輸入若干單字,並顯示這些單字內分別有幾個母音字母 ( 不分大小寫 )
輸入說明:
先輸入欲輸入的單字數量 N ,然後輸入單字,輸入完後按 Enter 及可以輸入下一個單字一直至輸入完畢。
輸出說明:
分別列出每個單字有多少個母音字母。
範例:
輸出輸入測試資料 各五筆
英文字母中有五個母音,分別是 a 、 e 、 i 、 o 、 u ,請寫一個程式,讓使用者可以輸入若干單字,並顯示這些單字內分別有幾個母音字母 ( 不分大小寫 )
輸入說明:
先輸入欲輸入的單字數量 N ,然後輸入單字,輸入完後按 Enter 及可以輸入下一個單字一直至輸入完畢。
輸出說明:
分別列出每個單字有多少個母音字母。
範例:
Sample Input: | Sample Output: |
1 abandon | abandon 3 |
input | output |
2 machine logistics | machine 3 logistics 3 |
2 extinguisher distributor | extinguisher 5 distributor 4 |
3 facility hazard enhance | facility 3 hazard 2 enhance 3 |
1 customize | customize 4 |
4 defect cylinder component automatic | defect 2 cylinder 2 component 3 automatic 5 |
- #include <iostream>
- #include <ctype.h>
- #include <stdio.h>
- #include <string.h>
- using namespace std;
- int main() {
- // [C_ST63-易] 尋找單字中的母音字母數量
- int N;
- int count = 0;;
- string vowel[5] = {"a", "e", "i", "o", "u"};
- string str_original; //原本的字串
- while(cin >> N)
- {
- for(int i = 0;i < N;i++)
- {
- cin >> str_original; //輸入原本的字串
- int len = str_original.size();
- //原本的字串的長度
- char original[len]; //原本的字元陣列
- char variety[len]; //變化後的字元陣列
- strcpy(original, str_original.c_str());
- //string to char
- //把原本的字元陣列統一轉成小寫,放入變化後的字元陣列內
- for(int j = 0; j < len;j++)
- {
- variety[j] = (char)tolower(original[j]);
- }
- string str_variety(variety);//char to string
- //計算數量
- for(int j = 0; j < 5;j++) //五個母音
- {
- int fpos = 0;
- string v = vowel[j];
- while(1)
- {
- fpos = str_variety.find(v, fpos);
- if (fpos != -1) //fpos != string::npos
- {
- fpos = fpos + v.size();
- count++;
- }
- else
- {
- break;
- }
- }
- }
- cout << str_original << " " << count << endl;
- count = 0;
- }
- }
- return 0;
- }
沒有留言:
張貼留言