前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言中的strstr函数的用法「建议收藏」

C语言中的strstr函数的用法「建议收藏」

作者头像
全栈程序员站长
发布2022-09-12 18:00:20
9310
发布2022-09-12 18:00:20
举报

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

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; }

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153021.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PHP语言函数
    • 语法
      • 提示
        • 实例
        • C语言函数
          • 函数实现
            • 应用举例
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档