strstr函数php,strstr 函数用法[通俗易懂]

strstr函数php,strstr 函数用法[通俗易懂]strstrstrstr(str1,str2)函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。C语言函数函数名:strstr函数原型:1externchar*strstr(char*str1,constchar*str2);语法:1*strstr(str1,str2)str1:被查找目标 stringex…

大家好,又见面了,我是你们的朋友全栈君。

strstr

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

C语言函数

函数名: strstr

函数原型:

1

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

语法:

1

*strstr(str1,str2)

str1: 被查找目标 string expression to search.

str2: 要查找对象 The string expression to find.

返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

例子:

1

2

3

char str[]=”1234xyz”;

char *str1=strstr(str,”34″);

cout <

显示的是: 34xyz

函数实现

1.Copyright 1990 Software Development Systems, Inc.

1

2

3

4

5

6

7

8

9

10

11

12

char *strstr(const char *s1,const char *s2)

{

int len2;

if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误

return(char*)s1;

for(;*s1;++s1)

{

if(*s1==*s2 &&strncmp(s1,s2,len2)==0)

return(char*)s1;

}

return NULL;

}

2.Copyright 1986 – 1999 IAR Systems. All rights reserved

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

char *strstr(constchar*s1,constchar*s2)

{

int n;

if(*s2)

{

while(*s1)

{

for(n=0;*(s1+n)==*(s2+n);n++)

{

if(!*(s2+n+1))

return(char*)s1;

}

s1++;

}

return NULL;

}

else

return (char*)s1;

}

3. GCC-4.8.0

1

2

3

4

5

6

7

8

9

10

11

char *strstr(const char*s1,const char*s2)

{

const char*p=s1;

const size_tlen=strlen(s2);

for(;(p=strchr(p,*s2))!=0;p++)

{

if(strncmp(p,s2,len)==0)

return (char*)p;

}

return(0);

}

应用举例

// strstr.c

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#include 

#include 

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都是一个未知的字串)

1

2

3

4

5

6

7

char *s=”string1onexxxstring2oneyyy”;

char *p;

p=strstr(s,”yyy”);

if(p!=NULL)

printf(“%s”,p);

else

printf(“notfound\n”);

说明:如果直接写语句p=strstr(s,”one”),找到的是onexxxstring2oneyyy

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

char *mystrstr(char*s1,char*s2)

{

if(*s1==0)

{

if(*s2)

return (char*)NULL;

return (char*)s1;

}

while(*s1)

{

int i=0;

while(1)

{

if(s2[i]==0)

return s1;

if(s2[i]!=s1[i])

break;

i++;

}

s1++;

}

return (char*)NULL;

}

php中strstr、strrchr、substr、stristr四个函数用法区别

php中strstr.strrchr.substr.stristr四个函数用法区别: php中strstr strrchr substr stristr这四个字符串操作函数特别让人容易混淆,常用的是s …

strstr函数的用法

C语言函数 编辑 包含文件:string.h 函数名: strstr 函数原型:      extern char *strstr(char *str1, const char *str2); 语法: …

string&period;h文件中函数用法

下面为string.h文件中函数的详细用法: strcpy函数名:strcpy功 能: 拷贝一个字符串到另一个用 法: char *strcpy(char *destin, char *source) …

PHP strstr&lpar;&rpar; 函数

实例 查找 “world” 在 “Hello world!” 中是否存在,如果是,返回该字符串及后面剩余部分: <?php echo strstr(&qu …

Oracle 中 decode 函数用法

Oracle 中 decode 函数用法 含义解释:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译 …

strstr 函数的实现

strstr函数:返回主串中子字符串的位置后的所有字符. #include const char *my_strstr(const char *str, const c …

memcpy函数用法

memcpy函数用法 .分类: VC++ VC++ mfc matlab 2011-12-01 19:17 14538人阅读 评论(0) 收藏 举报 null 原型:extern void *memc …

Python回调函数用法实例详解

本文实例讲述了Python回调函数用法.分享给大家供大家参考.具体分析如下: 一.百度百科上对回调函数的解释: 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函 …

随机推荐

调用约定&lowbar;&lowbar;cdecl和&lowbar;&lowbar;stdcall

首先,__cdecl,c declaration,C风格声明.或者 c default calling(笔者瞎编的).(那么问题来了,为什么PASCAL风格被称为std?) 调用约定的内容包括三点:参 …

php中Closure&colon;&colon;bind用法&lpar;手册记录&rpar;

手册中 Closure::bind — 复制一个闭包,绑定指定的$this对象和类作用域. 具体参数可以看手册,这里记录下这个方法的实际用处. <?php trait MetaTrait { p …

修改linux系统时间的方法&lpar;date命令&rpar;

修改linux系统时间的方法(date命令) 来源:互联网 作者:佚名 时间:11-18 23:22:27 [大 中 小] date命令不仅可以显示系统当前时间,还可以用它来修改系统时间,下面简单的介 …

29、Oralce(五)

1)掌握PLSQL程序设计 2)掌握存储过程,函数和触发器 3)了解一些oralceSQL语句优化方案 ———————————————— …

bundle update&colon; env&colon; ruby&lowbar;executable&lowbar;hooks&colon; No such file or directory

please open a bug here: https://github.com/mpapis/executable-hooks/issues as a temporary fix try: rv …

FragmentTransactionExtended

https://github.com/DesarrolloAntonio/FragmentTransactionExtended

SpringMVC 实现文件的上传与下载

一  配置SpringMVC ,并导入与文件上传下载有关的jar包(在此不再赘述) 二 新建 相应 jsp 和controller FileUpAndDown.jsp

【Android Studio安装部署系列】十五、Android studio添加Assets目录

版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio新建项目时是没有assets目录,需要自己手动创建. app右键——New——Folder——Asset …

淘淘商城之spring web mvc架构

一.什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合: springmvc是一个基于mvc的web框架   二.mv …

pthreads v3下一些坑和需要注意的地方

一.子线程无法访问父线程的全局变量,但父线程可以访问子线程的变量 <?php class Task extends Thread { public $data; public function …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152979.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号