1、查找子字符串函数strstr的实现char *  my_strstr(const char * dest, const char * src)//const保护字符串不被更改
{assert(dest);assert(src);     //断言char * ptr1 = NULL;char * ptr2 = src;while (*dest){ptr1 = dest;//保留匹配成功后的位置指针src = ptr2;//保留匹配失败后,字串的同样指针while (*dest == *src){dest++; src++;if (*src == '\0')return ptr1;//匹配成功,返回首地址}dest++;}return NULL;//匹配失败
}
优点:程序简单易懂
缺点:查找的效率比较低2、模拟字符串复制函数strcpy的实现char * my_strcpy(char * dest, const char * src)
{assert(dest);assert(src);//断言const char *ret = dest;//保留目标字符串的头指针while (*src){*dest++ = *src++;//逐个复制}*dest = '\0';//将‘\0’复制return  ret;//返回目标字符串的首地址
}
缺点:复制时遇到'\0'就结束,而不能复制一些包含'\0'较多的字符串。
例如:char arr[10] = {0,0,0,0,0};3、字符串长度计算函数strlen函数的3种实现1)使用计数器
int my_strlen_count(const char * str)//计数器实现字符串长度计算函数
{assert(str);//断言int count = 0;while (*str){count++;str++;}return count;//返回长度}2)利用指针相减
int my_strlen_ptr(const char * str)//利用指针相减实现字符串长度的计算
{assert(str);//断言const char * ret = str;while (*str++){;}return (str - ret - 1);//返回长度
}3)利用函数递归求取
int my_strlen_recu(const char * str)//利用递归计算字符串长度
{assert(str);//断言if (*str != '\0'){return (my_strlen_recu(str + 1) + 1);}elsereturn 0;
}4、字符串连接函数strcat的实现char * my_strcat(char * dest, const char * src)//字符串连接函数
{assert(dest);assert(src);//断言char *ret = dest;//保留目标字符串的头指针while (*dest){dest++;}//找到'\0';while (*dest++ = *src++)//将src连接到dest{;}return ret;//返回目标字符串的首地址
}5、字符串比较函数strcmp的实现int my_strcmp(const char *str1, const char *str2)//字符串比较函数
{assert(str1);assert(str2);//断言while (*str1 == *str2){str1++;str2++;if ('\0' == *str1){return 0;//相等}}return *str1 - *str2;//不等,返回不相等字符的ASCII码的差
}

转载于:https://blog.51cto.com/10788311/1718564

模拟实现常用字符串函数相关推荐

  1. 用c语言模拟实现常用字符串函数

    目录 一.常用字符串函数介绍 1.strlen 2. strcpy 3.strcmp 4.strcat 5.strstr 二.模拟实现常用字符串函数 1.strlen 2.strcpy 3.strcm ...

  2. C语言常用字符串函数及模拟实现

    字符串函数总结及模拟实现 1. 字符串函数总结

  3. SQL常用字符串函数

    SQL常用字符串函数 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用''括起来,但含其它字符的字符串必须用''括起来使用 ...

  4. 字符串与字符串函数 - 字符串输出 常用字符串函数

    一.字符串输出函数 1.puts() 函数 使用较为简单,只需要将字符串的地址作为参数进行传递即可. #include <sthio,h> #define DEF "I am a ...

  5. Matlab命令集--常用字符串函数

    Matlab命令集--常用字符串函数 常用函数 eval  :运行字符串表示的表达式 char  :将数组变成字符串 double:将数字字符串变成数字 字符串操作 deblank :去掉字符串末尾的 ...

  6. php如果字符串有1 3 5,PHP常用字符串函数小结

    PHP常用字符串函数小结 来源:程序员人生   发布时间:2015-01-22 09:02:32 阅读次数:1594次 1.判断类型的函数 is_bool() //判断是不是为布尔型 is_float ...

  7. C语言常用字符串函数

    概括 代码 #include<stdlib.h> #include<stdio.h> #include<string.h> int main() {//常用字符串函 ...

  8. 写出python字符串三种常用的函数或方法_python中几种常用字符串函数

    1.lower()把所有字符换成小写 2.upper()把所有字符换成大写 3.swapcase()大小写互换 4.title()把每个单词首字母大写,他是以所有英文字母的字符来区别是否为一个单词的, ...

  9. C语言常用字符串函数strlen、strcpy、strcat、strcmp、strchr

    C语言常用字符串函数,求串长strlen(char *s).串复制strcpy(char *s1,char *s2).串连接strcat(char *s1,char *s2).串比较strcmp(ch ...

最新文章

  1. 委托、事件、事件访问器
  2. #029 博客换个主题从新开始
  3. 华人包揽CVPR 2019两篇最佳论文,李飞飞ImageNet十年后获奖
  4. 【鸿蒙 HarmonyOS】界面跳转 ( AbilitySlice 之间的界面跳转 | AbilitySlice 之间的值传递 )
  5. [转]高效编程之欲擒故纵
  6. c++ vector 赋值_C++中vector用法
  7. 2019牛客暑期多校训练营(第七场)D Number(思维)
  8. volatile与synchronized的区别
  9. arm-2014.05 编译三星内核错误 “not support ARM mode ‘smc 0’ ”
  10. 前端学习(1107):函数进阶
  11. Spring事务管理详解_基本原理_事务管理方式
  12. scikit-learn学习笔记
  13. html能在hade中注释吗,A第1章 HTML超文本标记语言(1-20)OK.doc
  14. [C/C++] C++笔试常见问题
  15. 外网接口(浏览器接口)调取设备数据,放到数据库里
  16. 运放的噪声分析--你好放大器
  17. X波段多普勒天气雷达选址技术应用研究
  18. IBM称欧亚受Conficker病毒感染最严重
  19. 熊猫关键词工具v2.8.1.0绿色版SEO工具
  20. 北京朝阳数北机房简介

热门文章

  1. 2019 半导体领袖新年展望(一)| 半导体行业观察
  2. 10句“金玉良言”,助你面试成功!
  3. 为了写论文给 Linux “投毒”,导致整个大学都被 Linux 拉黑!
  4. 抽成 30% 的苹果税是良心价?谷歌也学“坏”了
  5. 程序员,是否应该有自己的职业规划?
  6. 程序员的求生欲有所强?用 Python 花式哄女友
  7. 几道题目理解JavaScript作用域、作用域链、预解析规则、表达式
  8. 学习Unix,可从事什么样的工作(1)《精通Unix下C语言与项目实践》读书笔记(3)...
  9. TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
  10. Linux下C语言之文件操作