实现strstr()函数

一)strstr()函数

函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
程序例:

#include <stdio.h>
#include <string.h>
int main(void)
{
   char *str1 = "Borland International. Welcome to Wuhan.", *str2 = "nation", *ptr;
   ptr = strstr(str1, str2);
   printf("The substring is: %s\n", ptr);
   return 0;
}
实现函数的源代码:

1.Copyright 1990 Software Development Systems, Inc.

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; 
} 

2.Copyright 1986 - 1999 IAR Systems. All rights reserved

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++; 
		}
		return NULL; 
	} 
	else 
		return (char *)s1; 
}



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值