首页 新闻 会员 周边

字符串包含问题求解

0
悬赏园豆:100 [已解决问题] 解决于 2021-12-11 19:18

编写函数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

include <stdio.h>

include <string.h>

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千多万,哪里出问题了?

wedy1234的主页 wedy1234 | 初学一级 | 园豆:6
提问于:2021-12-11 17:54
< >
分享
最佳答案
1

恕我说一句:编程不看文档,怪谁呢?
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);
}
收获园豆:100
寂静的羽夏 | 小虾三级 |园豆:1781 | 2021-12-11 19:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册