strstr函数的用法。。。。。。。。。。。。。。。

#include<stdio.h>#include<string.h>main(){ chars1[20],s2[20]; s... #include <stdio.h>#include <string.h>main(){ char s1[20],s2[20]; scanf("%s",s1);  scanf("%s",s2);  printf("%d\n",strstr(s1,s2)-s1+1);}比如上面这个用法,尤其是后面那句strstr(s1,s2)-s1+1,看不懂,求高人解析这句的用法,究竟是怎么用的????(我暂时没学过strstr函数的用法) 展开
 我来答
韧劲9
推荐于2017-09-14 · TA获得超过9224个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:352万
展开全部
trchr与strstr函数
strchr函数的语法格式怎么用?它的作用与strstr函数有什么区别?

在C语言中 strchr 和 strstr函数都被包含在<string.h>头文件中,也就是要调用它们时要在程序前面包含<string.h>头文件,也就是写这个语句:#include<string.h>
strchr函数原型:char * strchr(char * str, int ch); 功能就是找出在字符串str中第一次出项字符ch的位置,找到就返回该字符位置的指针(也就是返回该字符在字符串中的地址的位置),找不到就返回空指针(就是 null)。
strstr 函数原型: char * strstr(char * str1,char * str2);功能就是找出在字符串str1中第一次出项字符串str2的位置(也就是说字符串sr1中要包含有字符串str2),找到就返回该字符串位置的指针(也就是返回字符串str2在字符串str1中的地址的位置),找不到就返回空指针(就是 null)。

它们一个是求一个字符在字符串中得位置,另一个是求一个字符串在另一个字符串中的位置。
兔丞飞
高粉答主

2018-12-15 · 专注娱乐 专注娱乐 专注娱乐
兔丞飞
采纳数:25 获赞数:19893

向TA提问 私信TA
展开全部

C++函数原型:

const char * strstr ( const char * str1, const char * str2 );

char * strstr ( char * str1, const char * str2 );

C函数原型:

char * strstr ( const char *, const char * );

a字符串里 查看是否有b字符串,

有则 从首次发现b字符串处 返回 a字符串。

没有则输出 null

例子:

char st[]="abc 1234 xyz";

printf("%s",strstr(st,"34") );

打印出:

34 xyz


扩展资料

#include <syslib.h>

#include <string.h>

main()

{

char *s="GoldenGlobalView";

char *l="lob";

char *p;

clrscr();

p=strstr(s,l);

if(p)

printf("%s",p);

else

printf("NotFound!");

getchar();

return0;

}

//功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”

(假设xxx和yyy都是一个未知的字串)

char *s=”string1onexxxstring2oneyyy”;

char *p;

p=strstr(s,”yyy”);

if(p!=NULL)

printf(“%s”,p);

else

printf("notfound\n");

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e6248f8
2011-11-30 · TA获得超过111个赞
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:57.9万
展开全部
strstr(在一字符串中查找指定的字符串)
相关函数 index,memchr,rindex,strchr,strpbrk,strsep,strspn,strtok

表头文件 #include<string.h>

定义函数 char *strstr(const char *haystack,const char *needle);

函数说明 strstr()会从字符串haystack 中搜寻字符串needle,并将第一次出现的地址返回。

返回值 返回指定字符串第一次出现的地址,否则返回0。

范例 #include<string.h>
main()
{
char * s="012345678901234567890123456789";
char *p;
p= strstr(s,"901");
printf("%s\n",p);
}

执行 9.01E+21
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-11-30
展开全部
这是返回s2相对于s1的偏移量

strstr(str1,str2)作用是:找出str2字符串在str1字符串中第一次出现的位置
它的返回值:返回该位置的指针

所以strstr(s1,s2)-s1+1就是返回了相对于s1的偏移量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhanghuaen
2012-07-30 · TA获得超过4017个赞
知道小有建树答主
回答量:836
采纳率:88%
帮助的人:815万
展开全部
1万字也都输出,控制办法是将某个位置置为字符串结束符‘\0'。

#include <stdio.h>
#include <string.h>
void main()
{
char a[]="我我我我哦我哦喔喔喔we喔我哦我我我我我我我我哦我我我为我我";
char *b="we";
char *p = strstr(a, b);
printf( "%s",p ); // 这里输出"we喔我哦我我我我我我我我哦我我我为我我",有1万字也输出,除非遇见字符串结束符'\0'。
p[10] = '\0';
printf( "%d",p ); // 这里就只输出"we喔我哦我"了,因为p[10]被设置为结束符0了。
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式