写了个这个
#include<iostream>
using namespace std;
int find(string pattern,string str){
int length1=pattern.size();
int length2=str.size();
//穷举法
for(int i=0;i<length2-1-length1;++i){
int test=1;
for(int j=0;j<length1;++j){
if(str[i+j]==pattern[j]){
test*=1;
}else{
test*=0;
}
}
if(1==test){
return i;
}
}
return -1;
}
int main(){
string str="";
string pattern="";
cin>>str;
int num;
cin>>num;
for(int i=0;i<num;++i){
cin>>pattern;
int index=find(pattern,str);
if(-1==index){
cout<<"Not Found"<<endl;
}else{
for(int j=index;j<str.size();++j){
cout<<str[j];
}
cout<<endl;
}
}
return 0;
}
没找到

可能是for的边界条件有点问题
多了个这个吧?
还不对,确实是边界条件

应该是《=
#include<iostream>
using namespace std;
int find(string pattern,string str){
int length1=pattern.size();
int length2=str.size();
//穷举法
for(int i=0;i<=length2-length1;++i){
int test=1;
for(int j=0;j<length1;++j){
if(str[i+j]==pattern[j]){
test*=1;
}else{
test*=0;
}
}
if(1==test){
return i;
}
}
return -1;
}
int main(){
string str="";
string pattern="";
cin>>str;
int num;
cin>>num;
for(int i=0;i<num;++i){
cin>>pattern;
int index=find(pattern,str);
if(-1==index){
cout<<"Not Found"<<endl;
}else{
for(int j=index;j<str.size();++j){
cout<<str[j];
}
cout<<endl;
}
}
return 0;
}
字符串的调试,对DEVC也是灾难……

本文分享了一段用于在线刷题平台的C++代码,旨在实现字符串匹配功能。通过使用穷举法查找子串在主串中的位置,并针对边界条件进行了调整以确保正确性。

被折叠的 条评论
为什么被折叠?



