strstr

调用格式

 #include <string.h>
char *strstr(const char *haystack, const char *needle);

功能说明

  • 该函数在参数haystack给定的字符串中找到字符串needle出现的第一次位置。匹配字符串needle不会匹配字符串结束符‘\0’。在早些版本的Linux libc中该函数是不允许参数needle为空。但是在后面的版本中比如4.6.27中,是允许参数needle为空,这时返回值为haystack。

返回值

  • 成功则返回第一次匹配needle的地址,失败返回空

实现

const char* mystrstr(const char* str,const char* sub_str)
{
for (int i = 0; str[i] != '\0'; i++) //暴力搜索
{
int temp = i; //temp保留主串中的起始判断下标位置
int j = 0;
while (str[i++]==sub_str[j++])
{
if (sub_str[j]=='\0')
{
return &str[temp];
}
}
i = temp;
}
return NULL;
}

strcat

  • char *strcat(char *dest,char *src);
  • 功能 :把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。返回指向dest的指针。
  • 说明 : src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

实现

//连接字符串
char* mystrcat(char* destStr, const char* srcStr) //如果两个字符串是同一个字符串呢?
{
assert(destStr != NULL && srcStr != NULL); char* temp = destStr; while (*destStr != '\0')
{
++destStr;
}
while (*destStr++ = *srcStr++)
NULL;
return temp; //为了实现链式操作,将目的地址返回
}

strstr-strcat实现的更多相关文章

  1. 写出完整版的strcpy函数及其他如:strcat,strcmp,strstr的函数实现

    (---牛客网中刷题---)写出完整版的strcpy函数 如果编写一个标准strcpy函数的总分值为10,下面给出几个不同得分的答案: 2分 1 2 3 4 void strcpy( char *st ...

  2. strstr 的使用

    Problem E: Automatic Editing Source file: autoedit.{c, cpp, java, pas} Input file: autoedit.in Outpu ...

  3. 字符串操作函数<string.h>相关函数strcpy,strcat,等源码。

    首先说一下源码到底在哪里找. 我们在文件中包含<cstring>时,如果点击右键打开文档, 会打开cstring,我们会发现路径为: D:\Program Files\visual stu ...

  4. 内存及字符串操作篇strlen strchar strcmp strcoll strcpy strdup strstr strtok strspn strrchr bcmp bcopy bzero index memccpy memset

    bcmp(比较内存内容) 相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件 #include<string.h> 定 ...

  5. 字符串函数的实现(三)之strcat

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  6. C语言-字符串函数的实现(五)之strstr

    C语言中的字符串函数有如下这些 获取字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数 strncpy strncat strncmp ...

  7. c/c++ 常见字符串处理函数总结 strlen/sizeof strcpy/memcpy/strncpy strcat/strncat strcmp/strncmp sprintf/sscanf strtok/split/getline atoi/atof/atol

    这里总结工作中经常用到的一些c/c++的字符串处理方法,标黑的是使用频率较高的   1.strlen函数:计算目标字符串长度,    格式:strlen(字符指针指向区域) 注意1:①不包含字符串结束 ...

  8. [PHP源码阅读]strpos、strstr和stripos、stristr函数

    我在github有对PHP源码更详细的注解.感兴趣的可以围观一下,给个star.PHP5.4源码注解.可以通过commit记录查看已添加的注解. strpos mixed strpos ( strin ...

  9. [LeetCode] Implement strStr() 实现strStr()函数

    Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...

  10. strcat 函数的实现

    原型        extern char *strcat(char *dest,char *src); 用法        #include <string.h> 功能        把 ...

随机推荐

  1. DROP DATABASE - 删除一个数据库

    SYNOPSIS DROP DATABASE name DESCRIPTION 描述 DROP DATABASE 删除一个现存数据库的目录入口并且删除包含数据的目录. 只有数据库所有者能够执行这条命令 ...

  2. qobject_cast

    void QLadderDiagramItem::GetMainForm(DoType sourceType){ for each (QWidget *w in qApp->topLevelWi ...

  3. python之bool (布尔值)

    用途: ​ 判断真假 识记: 空的字符串是False,非空的就是True 0 是False,非0的都是True 格式: True False 布尔值转换成字符串: print(type(str(Tru ...

  4. pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization

    本文内容:1. Xavier 初始化2. nn.init 中各种初始化函数3. He 初始化 torch.init https://pytorch.org/docs/stable/nn.html#to ...

  5. SecureCRT 64位 破解版v8.1.4

    http://www.xue51.com/soft/1510.html#xzdz securecrt 破解版是一款支持SSH1和SSH2的终端仿真程序,这个程序能够在windows系统中登陆UNIX或 ...

  6. java 自动拆箱 自动装箱

    自动装箱的定义就是  基本数据类型赋值给包装类型,  拆箱则相反. Integer integer = 122; // 自动装箱 int num = integer; //自动拆箱 想看一下源码是怎么 ...

  7. 南邮CTF--SQL注入题

    南邮CTF--SQL注入题 题目:GBK SQL injection 解析: 1.判断注入点:加入单引号发现被反斜杠转移掉了,换一个,看清题目,GBK,接下来利用宽字节进行注入 2.使用'%df' ' ...

  8. vue element-ui中引入第三方icon

    vue element-ui中引入第三方icon 把图标加入项目 设置项目名称,下载项目(项目名称自定义) 解压项目到开发目录 在main.js中全局引入css文件 修改下载下来的项目中的css文件, ...

  9. ActiveMQ windows安装

    下载ActiveMQ 官方网站:http://activemq.apache.org/ 下载,解压缩 以前台安装 ctiveMQ默认使用的TCP连接端口是61616, 通过查看该端口的信息可以测试Ac ...

  10. Flask设计带认证token的RESTful API接口[翻译]

    上一篇文章, 使用python的Flask实现一个RESTful API服务器端  简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...