字符串的蛮力匹配法
要求:匹配成功就輸出在第幾個字符開始匹配成功,沒有匹配到就輸出匹配失敗
#include<iostream> using namespace std;void substring(string text, string pattern) {int x = text.size();int y = pattern.size();int j = 0;int i = 0;int result = 0;for(i=0;i<=x-y;i++){int j = 0;//這里讓j初始化是為了能在匹配中發現錯誤的時候,從頭開始匹配while ((text[i+j] == pattern[j])&&j<y){j++;}if (j == y){result = 1;//這里的result是為了讓輸出出現在循環外}}if (result == 0)cout << "匹配失敗";else cout << "在第"<<i<<"個字符處匹配成功"; }int main(void) {string text, pattern;cout << "請輸入原本的字符串:" << endl;cin >> text;cout << "請輸入你想要匹配的字符串:" << endl;cin >> pattern;substring(text, pattern);return 0; }結果如下:
?
注意!!!:?
1:此程序輸入的字符串中不可帶有空格
2:此程序僅適合在text字符串中只有一組字符串與pattern字符串匹配,如果出現多組,就不能統計出到底有幾組。例如:text字符串:schoolandschool,pattern字符串:school? 的情況,出現兩組匹配的,但程序只能統計第二組school
如果有bug歡迎指出!
總結
- 上一篇: python基础--初识python
- 下一篇: jQuery Mobel 学习相关资料整