模拟实现strstr函数功能
2017-10-06 11:42
295 查看
strstr函数的功能:有两个字符串str1,str2。如果s2是s1的子集,返回s2在s1中首次出现的地址,否则返回NULL。如str1 = “we are student!”,str2 = “are”。那么返回的就是“are”的第一个字符‘a’在s1中的地址。
#include <stdio.h> #include <windows.h> #include <string.h> #include <assert.h> char *my_strstr(const char *str1, const char *str2) { assert(str1); assert(str2); char *dest = (char *)str1; char *sorc = (char *)str2; char *flag = NULL; if (!*str2) //如果第二个字符串为NULL,直接返回NULL { return NULL; } while (*dest) //当*dest不是'\0'时,进入循环 { flag = dest; sorc = (char *)str2; while (*flag && *sorc && (*flag == *sorc)) { flag++; sorc++; } if (!*sorc) //当*sorc='\0',表示str2的所有字符都比较完了,此时可以判定str2是str1的子串 { return dest; } else { dest++; } } return NULL; } int main() { char s1[] = "we are student!"; char s2[] = "are"; printf("%s", my_strstr(s1, s2)); system("pause"); return 0; }
相关文章推荐
- 【LeetCode】005 Implement strStr() 函数strStr()的功能实现
- 创建一个函数,实现库函数strstr的功能
- 字符串处理函数的模拟实现(strlen、strstr、strcat、strcmp、strcpy、memmove、memcpy)
- 模拟实现C库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove
- C语言:模拟实现字符串中查找一个字符串my_strstr()函数
- 和字符串有关的函数的模拟实现 strlen strcpy strcat strstr strcmp
- 自己模拟实现strcpy函数功能
- 自己模拟strcmp库函数写的功能函数my_strcmp实现strcmp的功能,完整代码
- 模拟实现printf函数,可完成下面的功能 能完成下面函数的调用。 print("s ccc d.\n","hello",'b','i','t',100); 函数原型: print(char *
- 模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)
- 实现c语言strstr函数功能
- 模拟实现c库函数strcpy,strcat,strstr,strcmp,memcpy,memmove
- 模拟实现字符串查找函数strstr
- 模拟实现函数库中的常用函数,1实现strcpy 2.实现strcat 3.实现strstr 4.实现strchr 5.实现strcmp 6.实现memcpy 7.实现memmove,8实现memset
- 模拟实现C库函数:strchr、strcmp、strstr、memcpy和memmove
- 创建函数利用可变参数列表的形式模拟实现printf的功能
- c语言之模拟实现求子串(strstr)函数
- 模拟实现strstr()函数
- 模拟实现 strcpy strcat strstr strcmp 函数
- 自己模拟strlen库函数写的功能函数my_strlen实现strlen的功能,完整代码