博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
strstr-strcat实现
阅读量:6327 次
发布时间:2019-06-22

本文共 1083 字,大约阅读时间需要 3 分钟。

strstr

调用格式

#include 
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; //为了实现链式操作,将目的地址返回}

转载地址:http://ovgaa.baihongyu.com/

你可能感兴趣的文章
tomcat 下War包部署方法
查看>>
软件工程自评
查看>>
存储过程
查看>>
转载--C# PLINQ 内存列表查询优化历程
查看>>
调用函数后加括号与不加括号的区别
查看>>
Linq左右連接
查看>>
Mysql 一些命令记录
查看>>
实现一个简单的C++协程库
查看>>
java基础---接口和抽象类
查看>>
Selenium2+python自动化5-操作浏览器基本方法
查看>>
查看数据库文件已用空间
查看>>
python学习之老男孩python全栈第九期_day013知识点总结
查看>>
ifdef ANDROID总是不好用
查看>>
poj1328 Radar Installation 贪心
查看>>
file(内部存储与外部存储)
查看>>
Anya and Cubes 搜索+map映射
查看>>
斯坦福依存句法分析环境的搭建(但没有root提示)
查看>>
PHP2014-5-12的总结
查看>>
Python 用HTMLParser解析HTML文件 - 转
查看>>
基于BOOST 实现并发服务器框架
查看>>