你是真的“C”——各种实用string类库函数的详细实现过程【上篇】
创始人
2025-05-28 22:39:59
0

你是真的“C”——各种实用string类库函数的详细实现过程😎

  • 前言🙌
    • 一、求字符串长度的库函数(strlen) 😊
      • 1、计数器实现版本😘
      • 2、指针-指针的方式实现😘
      • 3、不能创建临时变量递归实现版本😘
    • 二、模拟实现strcpy😊
    • 三、模拟实现strcmp😊
    • 四、模拟实现strcat😊
    • 五、模拟实现strstr😊
  • 总结撒花💞

追梦之旅,你我同行

   
😎博客昵称:博客小梦
😊最喜欢的座右铭:全神贯注的上吧!!!
😊作者简介:一名热爱C/C++,算法等技术、喜爱运动、热爱K歌、敢于追梦的小博主!

😘博主小留言:哈喽!😄各位CSDN的uu们,我是你的博客好友小梦,希望我的文章可以给您带来一定的帮助,话不多说,文章推上!欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘
在这里插入图片描述

前言🙌

    哈喽各位友友们😊,我今天又学到了很多有趣的知识现在迫不及待的想和大家分享一下!😘我仅已此文,和大家分享你是真的“C”——各种实用string类库函数的详细实现过程。都是精华内容,可不要错过哟!!!😍😍😍

一、求字符串长度的库函数(strlen) 😊

strlen大概样子: 😊
在这里插入图片描述

1、计数器实现版本😘

详细代码展示:

#include
int my_strlen(const char * ptr)
{int count = 0;while (*ptr != '\0'){count++;ptr++;}return count;
}
int main()
{char arr[10] = "abcdef";printf("%d", my_strlen(arr));return 0;
}

2、指针-指针的方式实现😘

详细代码展示: 😍

#include
int my_strlen(const char* ptr)
{char* p = ptr;while (*p != '\0'){p++;}return p - ptr;
}
int main()
{char arr[10] = "abcdef";printf("%d", my_strlen(arr));return 0;
}

3、不能创建临时变量递归实现版本😘

详细代码展示: 😍

#include
int my_strlen(const char* ptr)
{if (*ptr == '\0')return 0;return my_strlen(ptr + 1) + 1;
}
int main()
{char arr[10] = "abcdef";printf("%d", my_strlen(arr));return 0;
}

程序运行结果:
在这里插入图片描述

二、模拟实现strcpy😊

strcpy的大概样子
在这里插入图片描述

详细代码展示: 😍

#include
#include
char* my_strcpy(char* des, const char* src)
{assert(des && src);char* p = des;while (*des++ = *src++ ){;}return p;
}
int main()
{char arr1[10] = "abcdeffg";char arr2[10] = { 0 };printf("%s", my_strcpy(arr2, arr1));return 0;
}

程序运行结果:

在这里插入图片描述

三、模拟实现strcmp😊

strcmp的大概样子:
在这里插入图片描述
strcmp的返回值实现细节:
在这里插入图片描述

详细代码展示: 😍

int my_strcmp(const char* str1, const char* str2)
{assert(str1, str2);while (*str1 || *str2){if (*str1 == *str2){str1++;str2++;}else{return *str1 - *str2;}}return 0;
}
int main()
{char arr1[10] = "abbbbb";char arr2[10] = "abeb";printf("%d", my_strcmp(arr1, arr2));return 0;
}

程序运行结果:
在这里插入图片描述

四、模拟实现strcat😊

strcat的大概样子:
在这里插入图片描述

详细代码展示: 😍

#include
#include
char* my_strcat(char* dest, const char* src)
{assert(dest && src);char* p = dest;while (*dest != '\0'){dest++;}while (*dest++ = *src++){;}return p;
}
int main()
{char arr1[10] = "hello ";char arr2[10] = "bit";printf("%s", my_strcat(arr1, arr2));return 0;
}

程序运行结果:
在这里插入图片描述

五、模拟实现strstr😊

strstr函数的大概样子:
在这里插入图片描述

详细代码展示: 😍

#include
#include
#include
char* my_strstr(const char* arr1, const char* arr2)
{assert(arr1 && arr2);char* s1 = NULL;char* s2 = NULL;char* start = arr1;while (*start && (strlen(arr1) > strlen(arr2))){s1 = start;s2 = arr2;while (*s1 && *s2 && *s1 == *s2){s1++;s2++;}if (*s2 == '\0')return start;start++;}return NULL;
}
int main()
{char arr1[100] = "abcdebcddf";char arr2[100] = "debc";printf("%s", my_strstr(arr1, arr2));return 0;
}

程序运行结果:

在这里插入图片描述

总结撒花💞

   本篇文章旨在分享冒泡排序的改良。希望大家通过阅读此文有所收获!😘如果我写的有什么不好之处,请在文章下方给出你宝贵的意见😊。如果觉得我写的好的话请点个赞赞和关注哦~😘😘😘

相关内容

热门资讯

6月信托数量环比增加1440款... 数据显示,截至2025年6月末,共有65家信托公司存续43625款标品信托产品,存续数量环比增加14...
原创 油... 车友们,今天是2025年7月28日,农历闰六月初四,星期一。距离新一轮汽柴油调价倒计时不足36个小时...
加快动产及权利质押融资创新,增... 来源:金融电子化 近年来,监管部门相继出台《关于规范发展供应链金融 支持供应链产业链稳定循环和优化升...
上交所:东方证券股份有限公司债... 7月28日,上交所发布关于东方证券股份有限公司2025年面向专业投资者公开发行短期公司债券(第三期)...
哈尔滨机场停车费24小时收费标... 一、哈尔滨机场停车场位置和路线 地下停车场(P4) 位置:位于T2航站楼前1号停车场下面。 进场路...
山西证券:首次覆盖浙江荣泰给予... 山西证券股份有限公司徐风,姚健近期对浙江荣泰进行研究并发布了研究报告《主业稳健增长,传动业务卡位优越...
关税对许多商户构成生存威胁!德... 当地时间27日欧盟与美国就双方贸易问题达成框架协议。根据协议,美国将对大部分欧盟进口产品征收15%的...
国家统计局公布:重要数据降幅收... 7月27日,国家统计局公布数据显示,6月份,规模以上工业企业利润同比下降4.3%,较5月份明显收窄。...
贸易协议缓解担忧,欧元兑美元维... 汇通财经APP讯——欧元兑美元在前两个交易日录得小幅下跌后微涨,周一(7月28日)亚洲时段交投于1....
福建德尔IPO前“突击”清理多... 在氟化工行业高歌猛进的浪潮中,主要从事氟化工基础材料、新能源锂电材料、特种气体和半导体湿电子化学品等...
突发!居然智家实控人汪林朋坠楼... “ 短短数日,这位曾身家125亿元的家居巨头掌舵人以一种令人唏嘘的方式告别了他一手打造的资本王国,也...
居然智家一度跌停,公司回应董事... 图片来源:居然之家官网 7月28日,居然智家(000785.SZ)开盘跌停。截至上午收盘,该股股价跌...
快手2025一季度净利润下滑3... 运营商财经网 实习生郑永杰/文 近日,快手科技发布2025年第一季度财报。报告期内,公司实现营收32...
居然智家董事长汪林朋被曝坠楼身... 7月27日消息,家居行业头部企业居然智家、董事长汪林朋被曝跳楼身亡。经多位行业人士确认,证实了此消息...
“国补”继续!第三批690亿元... 近日,国家发展改革委已会同财政部,向地方下达了今年第三批690亿元超长期特别国债支持消费品以旧换新资...
港股午评:恒指涨0.4%科指跌... 7月28日消息,三大指数冲高回落。截至午间收盘,恒生指数涨0.4%,报25490.45点,恒生指数跌...
弘信电子:7月25日融券卖出6... 证券之星消息,7月25日,弘信电子(300657)融资买入1.12亿元,融资偿还1.66亿元,融资净...
东山精密:7月25日融资买入1... 证券之星消息,7月25日,东山精密(002384)融资买入1.46亿元,融资偿还2.36亿元,融资净...
A股2025年首只10倍股诞生 上纬新材早盘一度涨超16%,再创历史新高。 该股年内累计涨幅已到达10倍以上,成为A股2025年以...
魅族换帅!创始人亲弟黄质潘重掌... 瑞财经 吴文婷7月25日,据媒体报道,星纪魅族证实,黄质潘正式出任星纪魅族集团CEO。 与此同时,...