strstr_c语言strstr函数实现_strcmp

电脑杂谈  发布时间:2017-04-28 00:06:31  来源:网络整理

strstr_strcmp_c语言strstr函数实现

strstr

包含文件:string.h

函数名: strstr

函数原型:extern char *strstr(char *str1, char *str2);

功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。

返回值:返回该位置的指针,如找不到,返回空指针。strstr

char *strstr(const char *s1, const char *s2)

{

int len2;

if( !(len2 = strlen(s2)) )

return(char *)s1;

for( ; *s1; ++s1)

{

if(*s1 == *s2 && strncmp(s1, s2, len2) == 0 )

return (char *)s1;

}

return NULL;

}

char *strstr(const char *s1, const char *s2)

{

int n;

if(*s2)

{

while(*s1)

{

for( n=0; *(s1+n) == *(s2+n); n++)

{

if( !*(s2 + n +1) )

return (char *)s1;

}

s1++;

strstr_strcmp_c语言strstr函数实现

}

return NULL;

}

else

return (char *)s1;

}

举例

//strstr.c

#include <syslib.h>

#include <string.h>

main()

{

char *s='Golden Global

View';

char *l='lob';

char *p;

clrscr();

p=strstr(s,l);

if(p)

printf('%s',p);

else

printf('Not Found!');

getchar();

return 0;

}

语法:* strstr(str1,str2)

str1: 被查找目标string expression to search.

str2:要查找对象The string expression to find.

该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL

The strstr() function returns the ordinal position within str1 ofthe first occurrence of str2. If str2 is not found in str1,strstr() returns 0.

strstr_c语言strstr函数实现_strcmp

例子:

功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy”

(假设xxx和yyy都是一个未知的字串)

char *s=” string1 onexxx string2 oneyyy”;

char *p;

p=strstr(s,”string2”);

if(p==NULL) printf(“Not Found!”);

p=strstr(p,”one”);

if(p==NULL) printf(“Not Found!”);

p+=strlen(“one”);

printf(“%s”,p);

说明:如果直接写语句p=strstr(s,”one”),则找到的是onexxx string2oneyyy,不符合要求

所以需采用二次查找法找到目标 实现 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://www.pc-fly.com/a/ruanjian/article-43883-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...