当前位置:  编程语言>c/c++

Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)

 
分享到:
    发布时间:2015-1-24  


    Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)(本文由www.169it.com搜集整理)C语言strstr()函数介绍 C语言strstr()函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则...

Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)

(本文由www.169it.com搜集整理)

C语言strstr()函数介绍

     C语言strstr()函数搜索一个字符串在另一个字符串中的第一次出现。找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;如果未找到所搜索的字符串,则返回NULL。

linux下glibc库函数strstr函数所在的头文件、原型、参数及返回值

    strstr()函数头文件: 

    #include <string.h>

    strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:

    char *strstr( char *str, char * substr );

函数参数:

str参数为要检索的字符串,

substr参数为要检索的子串。

函数返回值: 

返回字符串str中第一次出现子串substr的地址;如果没有检索到子串,则返回NULL。

通过Linux下man命令查看strstr函数详细帮助文档命令

    man strstr

结果如下图所示

Linux下C语言strstr()查找子字符串位置函数详细介绍(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); 
   }

strstr函数在GNU C Library Reference Manual中的详细说明

Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)


linux下strstr()函数的用法示例代码

linux下strstr()函数用法举例代码1

#include<stdio.h>
#include<string.h>
int main()
{       
char *str = "http://www.169it.com/";   
char *substr = "169it";   
 char *s = strstr(str, substr);   
 printf("%s\n", s);    
return 0;
}

示例代码运行结果

169it.com/

linux下strstr()函数用法举例代码2

#include<string.h>
#include<stdio.h>
int main(){    
char *haystack="Hello,I am 169it.com,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 169it.com,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: %s\n", 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


本类别最新文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号