C语言问题,急急急!求教高手

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:21:43
请帮忙编写一个名为findstringde 函数,用于检查一个字符串是否包含另外一个字符串。函数的第一个参数是需要被搜索的字符串,第二个参数是学要搜索的字符串。如果在第一个字符串函数中找到了第二个字符串函数,函数将第二个字符串在第一个字符串中的起始位置作为返回值返回给调用者,如果没有的话,则返回-1.
例如下面的语句:
index=findstring("a chatterbox", "hat");
在字符串"a chatterbox"中查找字符串"hat".因为第一个字符串中确实包含第二个字符串,因此该函数返回数值3,3就是字符串"hat"在第一个字符串中的起始位置。
谢谢,这个题已经烦了我很长时间了。

别开玩笑了,烦了你很长时间?
你是初学者吧?这种简单的东西,你应该自己学着去写,而不是让别人写好了给你。
kk什么的,你自己试试看这一组
abcdefg abcee你就知道你的对不对了
然后ryw
你试试
aabcde abcde你就知道你对不对了!
我说一下思路。LZ自己实现。
首先你要像他们一样,从第一个字符串中找到第二个字符串中的首字母。然后一个一个比较过去。如果一直到第二个字符串的末尾,都是相同的,那么这个首字母的位置就是index
如果其中有一个不相同
那么你需要在第一个字符串的那个首字母后面继续找。找到后再比较。
ff的方法,只比较了第二个字符串的首字母后末尾字母是否和第一个字符串中相等
所以abcdefg abcee会返回0,而其实在第四个字母的时候d和e是不同的
而后面那个人,我都懒得说了,写的什么乱七八糟的。

#include <string.h>
main()
{
char str1[]="a chatterbox",str2[]="hat";
int index=0;
index=findstring(str1,str2);
printf("index=%d\n",index);
}
int findstring(char *str1,char *str2)
{
char *p1,*p2,*tmp;
int len1,len2,i=0,j=0;
tmp=str1;
p1=str1;
p2=str2;
len1=strlen(str1);
len2=strlen(str2);
for(i=0;i<len1;i++)
{
p