C语言中的strstr函数的用法「建议收藏」
大家好,又见面了,我是你们的朋友全栈君。
strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。
PHP语言函数
strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。
语法
1 | strstr (string,search) |
---|
参数 | 描述 |
---|---|
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
相关文章
- C语言实现学生成绩管理系统设计
- 欧拉函数模板-----------C语言—菜鸟级
- C语言:函数的嵌套与递归
- C语言fscanf和fprintf函数的用法详解
- 详解结构体--C语言
- C语言之循环结构 for(二)详解编程语言
- 函数是什么,C语言函数概述
- 函数的返回值,C语言函数返回值详解
- C语言isalpha()函数:判断一个字符是否是字母
- 运维Linux C语言 Post 运维实践(linuxcpost)
- Linux C语言编程:如何使用清屏函数(linuxc清屏函数)
- C语言MySQL实现地址池数据库存取管理(c mysql 地址池)
- MySQL函数使用指南C语言编程者的最佳实践(c mysql函数大全)
- 数据库使用C语言连接本机Oracle数据库的实现过程(c 连接本机oracle)
- C语言获取Oracle数据库解决方案(c 获取oracle方案)
- 用C语言开发的Oracle管理系统(c oracle管理系统)
- 基于C语言sprintf函数的深入理解
- 用C语言实现单链表的各种操作(一)
- 解析如何在C语言中调用shell命令的实现方法
- C语言文件操作函数大全(超详细)
- C语言中函数声明与调用问题
- C语言main函数的参数及其返回值详细解析
- C语言循环结构与时间函数用法实例教程