(本文由www.169it.com搜集整理)
C语言strstr()函数介绍
C语言strstr()函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。
strstr()函数头文件:
#include <string.h>
strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:
char *strstr( char *str, char * substr );
函数参数:
str参数为要检索的字符串,
substr参数为要检索的子串。
函数返回值:
返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。
通过Linux下man命令查看strstr函数详细帮助文档命令
man strstr
结果如下图所示
c语言中strstr()实现的源代码版本如下
c语言中strstr()函数在1990的实现版本
char*strstr(constchar*s1,constchar*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;
}
c语言中strstr()函数在1986 - 1999 IAR Systems中的实现
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;
}
c语言中strstr()函数在GCC-4.8.0中的实现源码
char* strstr(constchar*s1,constchar*s2)
{ const char *p=s1;
constsize_tlen = strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{ if(strncmp(p,s2,len)==0)
return (char*)p;
}
return(0);
}
linux下strstr()函数的用法示例代码
linux下strstr()函数用法举例代码1
#include<stdio.h>
#include<string.h>
int main()
{
char *str = "http://www./";
char *substr = "169it";
char *s = strstr(str, substr);
printf("%sn", s);
return 0;
}
示例代码运行结果
/
linux下strstr()函数用法举例代码2
#include<string.h>
#include<stdio.h>
int main(){
char *haystack="Hello,I am ,I liking programing!";
char *needle="am";
char *temp;
temp=strstr(haystack,needle);
if(temp!=NULL) {
printf("%s ",temp);
} else
{
printf("Can not find [ %s ] from [ %s] ! ",needle,haystack);
}
return 0;
}
示例代码执行结果:
am ,I liking programing!
linux下strstr()函数用法实例代码3
#include <stdio.h>
#include <string.h>
int main(void) {
char *str1 = "My International", *str2 = "nation", *ptr;
ptr = strstr(str1, str2);
printf("The substring is: %sn", ptr);
return 0;
}
示例代码执行结果:
The substring is: national
linux下strstr()函数用法实例代码4
/* strstr example */
#include <stdio.h>
#include <string.h>
int main (){
char str[] ="This is a simple string";
char * pch;
pch = strstr (str,"simple");
strncpy (pch,"sample",6);
puts (str);
return 0;
}
示例代码执行结果:
This is a sample string