编写函数int search(char *src, char *sub),其功能为字符串查找函数,返回子串sub(长度小于80)在主字符串src(长度小于100)中的首次出现的起始下标。若不存在,返回-1。
【输入说明】
输入包括两行,第一行表示字符串src,第二行表示子字符串sub
【输出说明】
输出只包含一个数字,表示子串在主串中首次出现的起始下标
【输入样例】
Nature has given us that two ears,two eyes,and but one tongue
two
【输出样例】
25
void search(char *src, char *sub)
{
int y=0;
y=strstr(src,sub);
printf ("%d",y);
}
int main()
{
char src[100],sub[80];
gets (src);
gets (sub);
search (src,sub);
return(0);
}
问什么y给了一个很大的数呢?6千多万,哪里出问题了?
恕我说一句:编程不看文档,怪谁呢?
strstr
是C语言中的函数,作用是返回字符串中首次出现子串的地址。一般exe程序映射到的地址都是0x40000开头,当然大了。
既然帮你了,就帮到正确答案,不过建议你自己写完代码再看我的参考,注意,代码处我还留了一个坑,自己看看。
#include <stdio.h>
#include <string.h>
void search(char *src, char *sub)
{
char* y=strstr(src, sub);
printf("%d", (int)y-(int)src);
}
int main()
{
char src[100], sub[80];
gets(src);
gets(sub);
search(src, sub);
return (0);
}