本文共 854 字,大约阅读时间需要 2 分钟。
http://blog.csdn.net/itcastcpp/article/details/12907371
请用C语言实现字符串的查找函数strstr, 找到则返回子字符串的地址,没有找到返回为空,请用数组操作与指针操作实现
看到题目想到最简单的方法就是母字符串和子字符串比较,如果不同,将指向母字符串的指针向前移动,继续查找,
下面我们分别用数组操作实现,大家可以很容易改成指针操作实现,
国际惯例,参考前面文章新建一个vs2013的工程,经过前面的学习大家已经对开发环境很熟悉了,下面我们直接上代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
-
- char *mystrstr(char *Str, const char *SubStr)
- {
- int StrLen, SubStrLen;
- StrLen = strlen(Str);
- SubStrLen = strlen(SubStr);
-
-
-
-
- for (int i = 0; i <= StrLen - SubStrLen; i++)
- {
- int j;
- for (j = 0; j < SubStrLen; j++)
- {
- if (Str[i + j] != SubStr[j])
- break;
- }
- if (j == SubStrLen)
- return &Str[i];
- }
-
-
- return NULL;
- }
-
-
- int main()
- {
- printf("%s \n", mystrstr("testxx123", "xx12"));
- return 0;
- }
运行效果如下图:
如果有什么问题和疑问可以在下面留言互相探讨。
原题我已经上传到这里了 ,
解压密码为 c.itcast.cn