2017年11月26日 星期日

[C_ST42-易] 子字串出現次數(C++)

[C_ST42-易] 子字串出現次數

問題描述:
給予兩個英文字串,請計算出第一個字串出現在第二個字串中的次數。
輸入說明:
輸入分為兩行,第一行是由英文大小寫字母與數字所組成的字串,長度不超過 128 個字母。
第二行也是由英文大小寫字母與數字所組成的字串,長度不超過 512 個字母。
輸出說明:
第一個字串出現在第二個字串中的次數。
範例:
Sample InputSample Output
aa
aaa123bbab
2
baba
12b3bbababa12
2
baa
ababaabbbb
1

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main() {  
  5.     // [C_ST42-易] 子字串出現次數  
  6.     string str1, str2;  
  7.     //str1出現在str2中的次數  
  8.     getline(cin, str1);  
  9.     getline(cin, str2);  
  10.     int fpos = 0, count = 0;  
  11.     while(1)  
  12.     {  
  13.         fpos = str2.find(str1,fpos);  
  14.         //在str2字串中尋找子字串str1  
  15.         if(fpos != string::npos)  
  16.         {  
  17.             fpos = fpos + 1;  
  18.             count++;  
  19.         }  
  20.         else  //如果找不到就跳出迴圈  
  21.         {  
  22.             break;  
  23.         }  
  24.     }  
  25.     cout << count << endl;  
  26.     return 0;  
  27. }  

沒有留言:

張貼留言