• 题目:实现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函数的更多相关文章

  1. 自己实现strchr函数与strstr函数

    char* my_strchr(char* str, int i) { if (NULL == str) { return NULL; } while ('\0' != *str && ...

  2. strstr函数的用法

    C语言函数 编辑 包含文件:string.h 函数名: strstr 函数原型:      extern char *strstr(char *str1, const char *str2); 语法: ...

  3. strstr 函数用法

    strstr 编辑 strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该函数返回str2在str1中首次出现的地址:否则,返回NULL. C语言函数 编辑 ...

  4. C strstr() 函数

    包含文件:string.h 函数名: strstr 函数原型:extern char *strstr(const char *str1, const char *str2); 语法:* strstr( ...

  5. strstr()函数实现

    /* 函数要求:写一个函数模拟strstr()函数,设计中不得使用其他库函数. 函数原型:const char *strstr(const char *str1,const char *str2); ...

  6. strchr和strstr 函数

    函数原型:extern char *strchr(char *str,char character) 参数说明:str为一个字符串的指针,character为一个待查找字符.        所在库名: ...

  7. strstr 函数的实现

    strstr函数:返回主串中子字符串的位置后的所有字符. #include <stdio.h> const char *my_strstr(const char *str, const c ...

  8. C语言中strstr函数

    头文件:#include <string.h> strstr()函数用来检索子串在字符串中首次出现的位置,其原型为:    char *strstr( char *str, char * ...

  9. PHP字符串函数之 strstr stristr strchr strrchr

    strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...

  10. leetcode5 Implement strstr() 实现strstr函数功能

    Implement strstr() 实现strstr函数功能 whowhoha@outlook.com Question: Implement strstr(). Returns the index ...

随机推荐

  1. Ajax异步调用http接口后刷新页面

    使用Ajax的目的就是提高页面响应速度,无需同步调用,无需整个页面刷新.这里直接在html中使用js来实现: 先获取XMLHttpRequest对象 var xmlHttp; //创建一个xmlHtt ...

  2. nagios(centreon)监控lvs

    客户端配置:让nagios账户有权限查看ipvsadminvim /etc/sudoers[root@SSAVL2318 etc]# visodu /etc/sudoers加入 nagios  ALL ...

  3. java md5 函数

    private static final String md5(final String s) { final String MD5 = "MD5"; try { // Creat ...

  4. LVS+Keepalived搭建

    LVS+Keepalived搭建 原理说明 (推荐): http://www.cnblogs.com/likehua/archive/2014/06/19/3796849.html http://ou ...

  5. 【转】Jmeter做功能测试的优点和不足

    利用Jmeter做功能测试有以下优点: ●    不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执行测试 ●    测试脚本不需要编程,熟悉http请求,熟悉业务流程,就可以根据页面 ...

  6. 如何判断PHP数组是否为空

    PHP判断数组为空首选方法:count($arr),size($arr); $arr=array("");echocount($arr);echo size($arr); //输出 ...

  7. mysql跟踪执行的sql语句

    修改my.cnf配置文件 /usr/local/mysql/bin/mysql --verbose --help | grep -A 1 'Default options' Default optio ...

  8. DRF之权限认证频率组件

    概要 retrieve方法源码剖析 认证组件的使用方式及源码剖析 权限组件的使用方式及源码剖析 频率组件的使用方式及源码剖析 知识点复习回顾 Python逻辑运算 知识点复习回顾一:Python逻辑运 ...

  9. Django项目部署-01

    1. 安装Python 下载链接:https://www.python.org/getit/ 我这边下载的是3.6.5的版本的执行版本,安装过程中选择自动安装pip 2.安装django pip in ...

  10. MAPREDUCE的实战案例

    reduce端join算法实现 1.需求: 订单数据表t_order: id date pid amount 1001 20150710 P0001 2 1002 20150710 P0001 3 1 ...