系统函数C字符串的实现(2):strstr
2015-08-11 22:47
344 查看
<span style="font-size:18px;">char*mystrstr(const char*_Str, const char*_SubStr)//此处两个参数都是const类型 { if (NULL == _Str || NULL == _SubStr) { return NULL; } char*pres = NULL; int alllength = mystrlen(_Str);//母串的长度 int sublength = mystrlenaddr(_SubStr);//子串的长度 for (int i = 0; i < alllength - sublength; i++) { int flag = 1;//假相等 for (int j = 0; j < sublength; j++)//子串长度 { if (_SubStr[j] != _Str[j + i])//循环对比 { flag = 0; break; } } if (flag) { pres = _Str + i;//找到地址 return pres; } } } //双指针法 char*mystrstraddr(const char*_Str, const char*_SubStr) { if (NULL == _Str || NULL == _SubStr) { return NULL; } char*pbak = _Str; while (*pbak != '\0') { int flag = 1; char*pfind = pbak;//从当前字符串循环母串 char*psub = _SubStr;//从当前字符循环子串 while (*psub != '\0')//循环子串 { if (*pfind != '\0')//母串提前结束 { if (*pfind != *psub)//判断字符不等 { flag = 0; break; } else { pfind++; psub++; } } else { flag = 0; break; } } if (flag) { return pbak;//保存当前地址 } pbak++;//指针前移 } return NULL; } //strstr void main() { char str[100] = "rocket hello zhoruifu"; char name[100] = "rocket "; //char *p = mystrstr(str, name);//查找一个字符串在另外一个字符串是否存在 char *p = mystrstraddr(str, name); if (p != NULL) { printf("找到\n"); } else { printf("找不到\n"); } system("pause"); }</span>
相关文章推荐
- 臭皮匠排序
- 百度脱壳的一点尝试--人肉修复
- hdu-1875-畅通工程再续(克鲁斯卡尔&&普利姆求最小生成树)
- 集成 Entity Framework
- (转)java二维数组的深度学习(静态与动态)
- Python高级编程技巧
- hdu 2008 数值统计
- Try it again and believe in me
- 借贷宝如何找到自己的二维码(太多人问了)
- #[Composer学习笔记]Part2:添加路由
- OSG和osgearth显示中文
- 记一次加班有感
- 代码整洁之道-函数
- 如何抓包(获得网络数据)
- U盘内容被病毒隐藏的解决方案
- Tarena - 质数问题
- Android View滚动、拉伸到顶/底部弹性回弹复位
- Java基础-反射
- Android面试题集锦
- 谋篇布局:高效形成代码的心得