#include <iostream>
using namespace std;
int Search(char *str,char *ch,int *s);
int main()
{
char str[100],ch[100];
int flag,x,s[100];
cout << "请输入字符串:";
cin >>str;
cout <<"请输入查找的字符:";
cin >>ch;
flag=Search(str,ch,s);
if(flag==0)
{
cout <<"找不到该字符!";
}
else
{
cout<<"该字符出现在字符串的第";
for(x=0;x<flag;x++)
{
cout<<s[x]+1<<",";
}
cout<<"的位置.";
}
}
int Search(char *str,char *ch,int *s)
{
int i,j=0,k=0;
int len=strlen(ch);
for(i=0;i<strlen(str);i++)
{
if(str[i]=='\0')
break;
for(;j<len;j++)
{
if(ch[j]=='\0'&&ch[j]==str[j+i])
{
s[k]=i+j;
j+=len-1;
}
else break;
}
}
return j;
}
我写成了这样。。
题目是:
自定义函数,查找字符串中某子串全部出现的位置,返回位置并输出。
我想知道哪里写的不对,要怎么修改,请高手指导QAQ!!
这个不行的,我们要求用指针和数组做的。
追答都能用stren这个函数,为什么不能用find
追问我知道都能,但是我们要求不是这样的。
追答你要不要尝试下先找第一个相同的字母,然后比较接下来的ch的长度个,自己写一下试下呗,没有时间写
本回答被网友采纳