zoukankan      html  css  js  c++  java
  • strstr函数

    与strchr函数类比就可以知道,这个函数是用来从一个字符串中找出与另一个字符串相同的的部分。

    函数原型如下:

    char *strstr(char *str1, const char *str2);

    返回值:如果str1中含有str2,则会返回str2在str1的首次出现的地址;如果str2不是str1的子串则会返回NULL。

    来看一个CPP网站给出的例子:

    /* strstr example */
    #include <stdio.h>
    #include <string.h>
    
    int main ()
    {
      char str[] ="This is a simple string";
      char * pch;
      pch = strstr (str,"simple");
      strncpy (pch,"sample",6);
      puts (str);
      return 0;
    }

    run后的结果是:This is a sample string.

    再来看一下它的实现:

    GCC版本:

    char *strstr(const char*s1,const char*s2)
    {
        const char*p=s1;
        const size_tlen=strlen(s2);
        for(;(p=strchr(p,*s2))!=0;p++)
        {
            if(strncmp(p,s2,len)==0)
                return (char*)p;
        }
        return(0);
    }

    还有一种比较好理解:

    char *mystrstr(char*s1,char*s2)
    {
        if(*s1==0)
        {
            if(*s2)
                return (char*)NULL;
            return (char*)s1;
        }
        while(*s1)
        {
            int i=0;
            while(1)
            {
                if(s2[i]==0)
                    return s1;
                if(s2[i]!=s1[i])
                    break;
                i++;
            }
            s1++;
        }
        return (char*)NULL;
    }
  • 相关阅读:
    CArray类模板封装示例
    环形队列CQueue类模板示例
    CStack栈模板封装示例
    TSIC506驱动程序
    proteus虚拟串口实现
    js学习笔记(一)
    提升网页性能
    JS性能优化笔记搜索整理
    @font-face制作Web Icon
    原生js动画效果(源码解析)
  • 原文地址:https://www.cnblogs.com/kugwzk/p/5061997.html
Copyright © 2011-2022 走看看