c++ 在一个字符串(主串)中查找另一个字符串(子串)第一次出现时的位置,在查找过程中忽略字符的大小写
#include<iostream>usingnamespacestd;intequal(chara,charb){if(a>='A'&&a<='Z')a+='a'-'A...
#include<iostream>
using namespace std;
int equal(char a,char b)
{
if(a>='A'&&a<='Z') a+='a'-'A';
if(b>='A'&&b<='Z') b+='b'-'A';
return a==b;
}
char*substr(char*s,char*sub)
{
char *p,*q;
while(*s)
{
for(p=s,q=sub;*q&&equal(p,q);p++,q++);
if(*q=='\0') return s;
s++;
}
return 0;
}
int main()
{
char str[80]="This BOOK is a Very Good BOOK.",s2[20],*p;
cin>>s2;
if((p=substr(str,s2))!=0)
cout<<"找不到子串"<<endl;
else
cout<<"子串开始于第"<<p-str<<"个字符串处。\n";
return 0;
}
这是改错题,请问问题出在哪里?怎么改?拜托各位大侠了! 展开
using namespace std;
int equal(char a,char b)
{
if(a>='A'&&a<='Z') a+='a'-'A';
if(b>='A'&&b<='Z') b+='b'-'A';
return a==b;
}
char*substr(char*s,char*sub)
{
char *p,*q;
while(*s)
{
for(p=s,q=sub;*q&&equal(p,q);p++,q++);
if(*q=='\0') return s;
s++;
}
return 0;
}
int main()
{
char str[80]="This BOOK is a Very Good BOOK.",s2[20],*p;
cin>>s2;
if((p=substr(str,s2))!=0)
cout<<"找不到子串"<<endl;
else
cout<<"子串开始于第"<<p-str<<"个字符串处。\n";
return 0;
}
这是改错题,请问问题出在哪里?怎么改?拜托各位大侠了! 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询