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

PHP语言函数

编辑

strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。

语法

1
strstr (string,search)
[1]
参数
描述
string
必需。规定被搜索的字符串。
search
必需。规定所搜索的字符串。

提示

注释: search若是数字,所搜索的将是该数字(作为ASCII码)代表的字符。
注释:该函数是二进制安全的。
注释:该函数对大小写敏感。如需进行大小写不敏感的搜索,请使用 stristr()。

实例

1
<?php  echo  strstr ( "Helloworld!" , "world" );?>
输出:
1
world!

C语言函数

编辑

包含文件: string.h
函数名: 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 << str1 << endl;

显示的是: 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 <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都是一个未知的字串)
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;
}

C语言中的strstr函数的用法相关推荐

  1. C语言中的strstr函数

    C语言中的strstr函数 说到strstr函数,可能很多人会比较陌生,对比其他的字符串函数比如strcpy,strcmp等等,它的确比较少用,但其实他也是一个非常有用和常见的函数,今天,就让我们一起 ...

  2. c语言使用free释放指针报错,C语言中的free函数用法执行机制分析

    free函数是C语言或者C++程序语言的常用函数,那么free函数有什么用途呢?free函数又怎么用呢?C语言中的free函数用法执行机制分析,一起来看看free内部的机制以及和delete的对比分析 ...

  3. C语言 SLEEP函数不起作用,C语言中的sleep() 函数 sleep函数的具体用法

    导航:网站首页 > C语言中的sleep() 函数 sleep函数的具体用法 C语言中的sleep() 函数 sleep函数的具体用法 相关问题: 匿名网友: 关于sleep()函数在windo ...

  4. c语言中rand()的作用,c语言中的rand()函数用法

    rand() rand()函数作用:用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的. rand()函数返回:返回一个范围在 ...

  5. c语言常量的正确表示const,C语言中的const和free用法详解

    注意:C语言中的const和C++中的const是有区别的,而且在使用VS编译测试的时候.如果是C的话,请一定要建立一个后缀为C的文件,不要是CPP的文件.因为,两个编译器会有差别的. 一.C语言中的 ...

  6. c语言中if和goto的用法,C语言中if和goto的用法.doc

    C语言中if和goto的用法 C语言中,if是一个条件语句,用法??if(条件表达式) 语句如果满足括号里面表达式,表示逻辑为真于是执行后面的语句,否则不执行(表达式为真则此表达式的值不为0,为假则为 ...

  7. C++语言中std::array的神奇用法总结,你需要知道!

    摘要:在这篇文章里,将从各个角度介绍下std::array的用法,希望能带来一些启发. td::array是在C++11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能.也正因此, ...

  8. go语言中error的分类与用法

    go语言中error的分类与用法 原文引用:极客时间中的课程<Go error处理最佳实践> 前言:本文要讨论的就是go中error的基本原理/类型,以及最重要的几个问题: go代码开发中 ...

  9. C语言中itoa系列函数及sprintf系列函数使用详解

    C语言中itoa系列函数及sprintf系列函数使用详解 itoa函数系列 该系列函数是广泛使用的非标准C语言和C++语言扩展功能,只能在windows编译器下使用,如果涉及到跨平台是不允许使用的,这 ...

最新文章

  1. libtorchWindows中的使用
  2. android开发启动画面,Android开发笔记——如何正确实现App启动页
  3. idea下mapreduce的wordcount
  4. STM32-独立看门狗原理-实验
  5. shell 如何避免误删目录
  6. 郑州大学远程教育c语言程序设计答案,郑州大学远程教育C语言考试试卷.doc
  7. 虚拟服务器的外部跟内部端口,虚拟服务器设置 外部端口
  8. CSS 内边距 和尺寸(收藏)
  9. vue 利用科大讯飞实现实时语音转写
  10. 你应当知道的人工智能发展历史
  11. 用户登录模块---Druid+JDBC+Servlet
  12. 源码分析学习记录(9)——PBR材质
  13. java录入会员信息_Java编程语言基础 第三章 实现会员信息录入功能
  14. linux mv命令例子,linux命令mv
  15. ASAM MCD2D 笔记(1) - ODX use cases
  16. wordpress 安全保密hacks
  17. 2023年最新批量删除微博_新版微博怎么批量删除自己发的微博?
  18. 略谈中国软件产品化的路线图
  19. 计网自顶向下第四章归纳(网络层)
  20. ec11编码器c语言程序,旋转编码器 关于EC11计数的程序 - 下载 - 搜珍网

热门文章

  1. 随机的UserAgent对付某反爬虫网站
  2. 阅读《精通Python爬虫框架Scrapy》
  3. abaqus钢结构螺栓连接分析
  4. 数学之路(4)-数学基础-幂函数图像与函数平移
  5. QQ音乐sign,jsvmp算法推导
  6. 锂离子电池热失控预警资料整理(二)
  7. EFR32蓝牙串口透传程序流程
  8. 好嗨呦是谁_好嗨哟谁唱火的 毛毛姐录好嗨哦原创视频吸粉无数
  9. Xshell6官网个人免费版下载
  10. linux 桌面环境比较 (2013-10-25)