首页 > 其他 > 详细

(函数)实现strstr函数

时间:2017-02-04 19:52:57      阅读:175      评论:0      收藏:0      [点我收藏+]
  • 题目:实现strstr函数。
  • 这个函数原型 strstr(char *a, char *b),在a中是否包含b这个字符串,包含返回第一个子串的位置,否则返回NULL。
  • 思路:其实这个就是找子串的问题。特殊情况,当b为空的时候,直接返回a;当b不为空的时候,指定start指针,通过两次循环,逐一对strstr中的子串和b进行匹配,如果b走到末尾,表示找到,start指针指向开始位置,否则start继续往前,

    例子:abcdefg    bcd  
            start指向a的位置,  将abcdefg和bcd比较   ->否
            start前进,指向b的位置,  将bcdefg和bcd比较  -> 是   返回start指针。

  • 代码
    class Solution {
    public:
        char *strStr(char *haystack, char *needle) {
            if (!*needle)
                return haystack;
            char *start = haystack;
            char *temp1 = haystack, *temp2 = needle;
            while (*start){
                temp1 = start;
                temp2 = needle;
                while (*temp2 && temp1 && !(*temp2 - *temp1))
                    temp2++, temp1++;
                if (!*temp2)
                    return start;
                start++;
            }
            return NULL;
        }
    };

     

(函数)实现strstr函数

原文:http://www.cnblogs.com/Kobe10/p/6366174.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!