-1
#include <iostream>
using namespace std;
int main()
{
string s1="panamabananas";
string s2="nana";
int i,j,k=0;
string count="";
for(i=0;i<s1.length();i++)
{
k=0;
if(s2[k]==s1[i]);
{
count+=s2[k];
for(j=i+1;j<i+s2.length();j++)
{
k++;
if(s2[k]==s1[j])
{
count+=s2[k];
cout<<"it is: "<<count<<endl;
}
else
{
count="";
break;
}
}
}
}
cout<<"the matched string is "<<count;
return 0;
}
如果模式s2存在於文本s1中,則搜索模式s2。並且設計一個計數器來寫入模式匹配的內容。該計數器最後必須等於nana
,即它表示文本panamabananas
中存在nana
。 我不明白這裏發生了什麼問題。我試圖找到文本中的模式,出了什麼問題?
這聽起來像你可能需要學習如何使用調試器來遍歷你的代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:** [如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
目前還不清楚你真的想要輸出什麼真的你只是說「我的代碼不起作用」,但有一個想法 - 如果你正在尋找子字符串,在另一個字符串中說''nana''只需要去掉另一個字符串的長度減去「 nana「''for(i = 0; i
doctorlove