现在的位置: 首页 > 综合 > 正文

c语言库函数【string.h】之strstr_(char *s1, char *s2)

2013年02月25日 ⁄ 综合 ⁄ 共 772字 ⁄ 字号 评论关闭

c语言库函数【string.h】之strstr_(char *s1, char *s2)

 

代码如下:

 

#include<assert.h>

#include<stdio.h>

 

 

//在串中查找指定字符串的第一次出现 

 char * strstr_(char *s1, char *s2)

 {

if( s1 == NULL || s2 == NULL || *s1== '/0' || *s2 == '/0')

return (char *) NULL;

 

char * p1=s1;

char * p2=s2;

 

while(*s1)//遍历s1

{

//i=0;

p1=s1;//p1指向当前s1字符

p2=s2;//p2指向s2首字符

while(*p1 == *p2 && *p1 && *p2)//匹配字串

{

p1++;

p2++;

}

if(*p2=='/0')//如果p2指向s2末尾,则说明在s1中匹配s2成功

{

return s1;

}

 

s1++;//s1指向下一个字符

}

 

return (char *) NULL;

 

 }

 

 //在串中查找指定字符串的第一次出现,返回位置

 int strstri_(char * str1,char * str2)

 {

if( str1 == NULL || str2 == NULL || *str1== '/0' || *str2 == '/0')

return -1;//abcd b

 

char * start=str1;

char * p1=str1;

char * p2=str2;

 

while(*str1)//遍历s1

{

p1=str1;//p1指向当前s1字符

p2=str2;//p2指向s2首字符

while(*p1 == *p2 && *p1 && *p2)//匹配字串

{

p1++;

p2++;

}

if(*p2=='/0')//如果p2指向s2末尾,则说明匹配字串成功

{

return str1-start;

}

 

str1++;//s1指向下一个字符

}

 

return -1;

 }

抱歉!评论已关闭.