#include<stdio.h>
#include<assert.h>size_t my_strlen(const char*str)//求字符串长度
{int length;for(length=0;*str!='\0';++length){str++;}return length;
}char *my_strcpy(char*str1,const char*str2)//字符串拷贝
{assert((str1!=NULL)&&(str2!=NULL));char *p=str1;while(*str2!='\0'){*str1++=*str2++;}*str1='\0';return p;
}
char *my_strcat(char *str1,const char*str2)//字符串连接
{assert((str1!=NULL)&&(str2!=NULL));char *p=str1;while(*str1!='\0'){++str1;}while(*str2!='\0'){*str1++=*str2++;}*str1='\0';return p;
}
char *my_strstr(const char*str1,const char*str2)//函数搜索一个字符串在另一个字符串中的第一次出现。
{assert((str1!=NULL)&&(str2!=NULL));for(int i=0;str1[i]!='\0';++i){int tmp=i;int j=0;while(*str1==*str2){str1++;str2++;if(*str2=='\0'){return &str1[tmp];}}i=tmp;}return 0;
}
int my_strcmp(const char*str1,const char*str2)//字符串比较
{assert((str1!=NULL)&&(str2!=NULL));while((*str1!='\0')&&(*str2!='\0')){if(*str1==*str2){str1++;str2++;}else if(*str1<*str2){return -1;}elsereturn 1;}   if(*str1=='\0'&&*str2!='\0'){return -1;}if(*str1!='\0'&&*str2=='\0')    {return 1;}return 0;
}

string函数的模拟实现相关推荐

  1. JavaScript函数重载模拟

    我们从结果向实现推,首先看我们要实现什么样的效果: css(hi,"color","red") css([hi,hello],"color" ...

  2. String类的模拟实现

    目录: 一.经典String类的问题 1,浅拷贝 2,深拷贝 二.现代写法版的string类 三.传统String类的模拟实现 1.迭代器 2.operator[] 3.size() 4.c_str( ...

  3. C++关于string类的模拟实现

    文章目录 一.string类的模拟实现 1.成员变量 2.构造函数 (1)无参构造函数 (2)有参构造函数 3.c_str函数 4.operator[] 5.深浅拷贝问题 (1)浅拷贝 (2)深拷贝 ...

  4. C语言函数: 字符串函数及模拟实现strtok()、strstr()、strerror()

    C语言函数: 字符串函数及模拟实现strtok().strstr().strerror() strstr()函数: 作用:字符串查找.在一串字符串中,查找另一串字符串是否存在. 形参: str2在st ...

  5. strtok函数及其模拟

    1.strtok函数的参数和返回值 参数:第一个参数指定一个字符串,它包含了0个或者多个由del字符串中一个或者多个分隔符分割的标 记. 第二个参数del参数是个字符串,定义了用作分隔符的字符集合. ...

  6. 【C语言详解】——常见字符和字符串函数及其模拟实现

    本文主要介绍一些常见的字符和字符串函数及其模拟实现 所需要的头文件 #include<string.h> 目录 1.求字符串长度 strlen 1.1模拟实现 strlen(三种方法) 2 ...

  7. 详解字符串比较函数:strcmp函数及其模拟实现

    详解字符串比较函数:strcmp函数及其模拟实现!!! 对于字符串比较函数:strcmp函数,想必大家也不会感觉陌生,毕竟在之前就有过接触!虽然很少使用,但是,见面了也能认出来!只不过不太怎么使用过罢 ...

  8. strncpy函数的模拟实现

    strcpy :是用自身的字符数组长度来判断循坏的停止条件,在一些情况下这是不安全的 strncpy:在函数拷贝的过程中,将'\0'也拷贝出来,并且以'\0'作为循环的终止条件,这样子就会避免程序找不 ...

  9. c语言函数指针,基于函数回调模拟实现qsort函数,实测案例

    前言 qsort函数C语言编译器函数库自带的排序函数. qsort 的函数原型是void qsort (void*base,size_t num,size_t width,int (__cdecl*c ...

最新文章

  1. 转:Oracle greatest函数
  2. Linux内核--1,2章
  3. ubuntu 16.04安装visual studio code 提示libnss3版本低:NSS = 3.26 is required
  4. JNI编程基础(二)——Android Studio NDK开发
  5. ERP开发中应用字符串解析实现界面翻译智能化
  6. 【火炉炼AI】机器学习032-用户之间相似度的计算
  7. 设置ROS机器人避免行走到地图未知区域
  8. c语言中如何让鼠标在一个窗口之外不能点击_Excel系列教程:如何自动填充单元格...
  9. 多个构造器参数使用构建器
  10. In the interview, Clem revealed that his first
  11. oracle暂停索引,Oracle索引被抑制情况
  12. GitHub五万星中文资源:命令行技巧大合集,新老司机各取所需
  13. SystemVerilog搭建测试平台---第一章:验证导论
  14. CCNA学习指南 无线技术
  15. AndroidStudio选中代码后,光标自动变粗,自动变成ins模式的解决方法
  16. 毕业设计答辩PPT模板
  17. 关于AD中如何绘制原理图及其封装
  18. 2021.3.8-第一次MD作业
  19. Spring Data JPA/Hibernate 运行期动态模型、动态实体建表、动态字段查询的方式
  20. 使用svg创建动态水印内容

热门文章

  1. IDEA 全局搜索快捷键CTRL+SHIFT+F,不起作用
  2. J2ME资源:各厂商SDK和模拟器下载地址
  3. 以业务管理信息化系统建设推动施工企业数字化转型
  4. C# SolidWorks 二次开发 API ---读取零件相关属性
  5. 你好法语A1语法单元汇总(unité 4)
  6. 硬盘初始化分区选择GPT还是MBR?
  7. 腾讯云服务器简单搭建项目
  8. 解码 解密微信电脑版image文件夹下缓存的用户图片 dat文件解码解密查看方法
  9. 黑炫酷的监控界面,实际上是用了什么开源工具?
  10. 网站颜色配色方案笔记