C++程序实现短文本大小字符串搜索算法
在這個C++程式中,作為輸入,給定一個文字和一個模式。作為輸出,在文字中搜尋模式並給出模式的所有個例。
演算法
Begin Take the string and pattern as input. Declare the original and duplicate array with their size. Put the lengths of original and duplicate in len_ori and len_dupli. Make a loop for find out the position of the searched pattern. If pattern is not found, print not found otherwise print the no of instances of the searched pattern. End
範例程式碼
#include<iostream> #include<cstring> using namespace std; int main() { char ori[120], dupli[120]; int i, j, k = 0, len_ori, len_dupli; cout<<"enter string without any blank space"<<endl; cout<<"\nEnter Original String:"; cin>>ori; cout<<"Enter Pattern to Search:"; cin>>dupli; len_ori = strlen(ori); len_dupli = strlen(dupli); for (i = 0; i <= (len_ori - len_dupli); i++) // loop to find out the position Of searched pattern { for (j = 0; j < len_dupli; j++) { if (ori[i + j] != dupli[j]) break ; } if (j == len_dupli) { k++; cout<<"\nPattern Found at Position: "<<i; } } if (k == 0) cout<<"\nNo Match Found!"; else cout<<"\nTotal Instances Found = "<<k; return 0; }
輸出
enter string without any blank space Enter Original String:Enter Pattern to Search: Pattern Found at Position: 0 Pattern Found at Position: 1 Pattern Found at Position: 2 Pattern Found at Position: 3 Total Instances Found = 4
广告