C++编写一个函数,实现在字符串中搜索子串并返回第一个相匹配的子串指针,若没有找到匹配则返回空指针.
C++编程作业:编写一个函数,实现在字符串str中搜索子串pattern返回第一个相匹配的子串指针,若没有找到匹配则返回空指针.样例输入:abcdefghijdefgh样...
C++编程作业:编写一个函数,实现在字符串str中搜索子串pattern返回第一个相匹配的子串指针,若没有找到匹配则返回空指针.
样例输入:abcdefghij defgh
样例输出:find substring: defghij
我看了http://zhidao.baidu.com/question/126823668.html这一个提问,但是貌似只能针对字符串长度为1的,并没有检验整个字符串。找不到也没有返回零指针。求完整检验方法。
以下为主函数,要求补充完整:
#include <iostream>
using namespace std;
char * GetSubstr(char *str, char *pattern)
{
补充完整
}
int main()
{
const int MAX_STR_LEN = 100;
char str[MAX_STR_LEN], pattern[MAX_STR_LEN];
cin>>str>>pattern;
char* pos;
pos = GetSubstr(str, pattern);
if(pos)
cout<<"find substring: "<<pos<<endl;
else
cout<<"substring not found"<<endl;
return 0;
} 展开
样例输入:abcdefghij defgh
样例输出:find substring: defghij
我看了http://zhidao.baidu.com/question/126823668.html这一个提问,但是貌似只能针对字符串长度为1的,并没有检验整个字符串。找不到也没有返回零指针。求完整检验方法。
以下为主函数,要求补充完整:
#include <iostream>
using namespace std;
char * GetSubstr(char *str, char *pattern)
{
补充完整
}
int main()
{
const int MAX_STR_LEN = 100;
char str[MAX_STR_LEN], pattern[MAX_STR_LEN];
cin>>str>>pattern;
char* pos;
pos = GetSubstr(str, pattern);
if(pos)
cout<<"find substring: "<<pos<<endl;
else
cout<<"substring not found"<<endl;
return 0;
} 展开
1个回答
展开全部
char * GetSubstr(char *str, char *pattern){
int i,j;
char *p;
for(i=0;str[i];i++){
for(p=str+i,j=0;pattern[j];j++)
if(str[i+j]!=pattern[j])
break;
if(pattern[j]=='\0')
return p;
}
return NULL;
}
int i,j;
char *p;
for(i=0;str[i];i++){
for(p=str+i,j=0;pattern[j];j++)
if(str[i+j]!=pattern[j])
break;
if(pattern[j]=='\0')
return p;
}
return NULL;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询