造轮子
本专栏文章主要展现从零实现一些基础操作 API 、基础算法以及 Linux 命令。
☆星轨★
人生苦短,只争朝夕。
展开
-
【造轮子】实现冒泡排序、选择排序(C++)
1. 冒泡排序1.1 算法原理核心思想多次遍历,每次遍历把两相邻数之间相比较,如果大数在前,小数在后,则交换。每次遍历后当前遍历区间内最大的元素会被放到区间的末尾。算法过程第一遍遍历区间为 [0, N-1],两个相邻元素进行比较,需使之维持较小元素在前,较大元素在后。遍历完后,数组中最大的元素会被放到数组的末尾位置,然后进行第二遍遍历。第二遍遍历区间为 [0, N-2],操作方法相同。遍历完后,数组中第二大的元素被会放到数组倒数二个位置,然后进行第三遍遍历。以此类推,直至遍历区间缩小到一个原创 2020-06-25 17:14:49 · 206 阅读 · 0 评论 -
【造轮子】系列导航
1. 前言初级程序员向中高级程序员进阶的一大指标就是要从会用工具到理解工具。纵然现成的各个 API、指令等都已经基本是完成对应功能的最优解,但通过反推其底层的工作原理,能够大大提高程序员的编程水平与对系统的认知。本系列将反推各种工具的底层原理,并加以实现,这也便是造轮子。轮子的类型不受限制,有 API、Linux 命令、数据结构等。2. 文章索引以下为《造轮子》系列博文的索引,供方便查阅...原创 2020-05-03 17:31:43 · 366 阅读 · 0 评论 -
【造轮子】实现 strdup 函数
1. 函数简介strdup 函数为 C 库函数之一,用于获取一个位于堆空间的与指定的字符串一致的字符串。原型:char* strdup (const char* str);所属头文件:<string.h>功能:获取一个位于堆空间的与 str 所指字符串一致的字符串。返回:指向堆空间的字符串的指针。2. 函数说明使用 strdup 能够得到一个给定字符串的拷贝,...原创 2020-04-21 21:14:54 · 783 阅读 · 0 评论 -
【造轮子】实现 strcasecmp、strcasencmp 函数
函数重现系列导航1. 函数简介strcasecmp 函数为 C 库函数之一,用于字符串忽略字母大小写的比较。原型:int strcasecmp (const char* str1 ,const char* str2);所属头文件:<string.h>功能:比较 str1 指向的字符串和 str2 指向的字符串。两个字符串自左向右比较每个字符的 ASCII 值大小,且忽略...原创 2019-12-14 21:09:25 · 1833 阅读 · 1 评论 -
【造轮子】实现 memset、bzero 函数
1. memset 函数1.1 函数简介memset 函数为 C 库函数之一,用于直接对内存赋值,常用于内存的初始化。原型:void* memset (void* dst, int val, size_t n);所属头文件:<string.h>功能:从 dst 所指的内存空间的前 n 个字节以字节为单位赋值为 val。返回:目标内存的首地址。1.2 函数说明...原创 2020-04-19 20:53:29 · 684 阅读 · 2 评论 -
【造轮子】实现 atoi、itoa 函数
1. atoi 函数1.1 函数简介atoi 函数为 C 库函数之一,用于把字符串转换为对应的整形十进制数字。原型:int atoi (const char* str);所属头文件:<stdlib.h>功能:把 str 指向的字符串转换为对应的整形十进制数字。返回:转换得到的数值。1.2 函数说明在原 atoi 函数中,如果字符串含非数字字符即非 ‘0’ -...原创 2020-04-19 11:30:07 · 249 阅读 · 0 评论 -
【造轮子】实现 strtok 函数
函数重现系列导航1. 函数简介strtok 函数为 C 库函数之一,用于分割字符串。原型:char* strtok (char* str, const char* delim);所属头文件:<string.h>功能:使用 delim 指向的字符串中的字符分解 str 指向的字符串,str 指向的字符串中与 delim 指向的字符串的交集的字符都将被“\0”替换,达到分割...原创 2019-11-16 17:21:32 · 679 阅读 · 1 评论 -
【造轮子】实现 memcpy、memmove 函数
函数复现系列导航1. 函数简介memcpy 函数为 C 库函数之一,用于内存的拷贝。函数原型:void* memcpy(void *dest, const void *src, size_t num);所属头函数:&amp;amp;lt;string.h&amp;amp;gt;功能:从 src 所指的内存地址的起始位置开始,拷贝 num 个字节的数据到目标 dest 所指的内存地址的起始位置中。返回:指向目标内...原创 2019-02-24 16:14:23 · 594 阅读 · 0 评论 -
【造轮子】实现 strcat 函数
函数复现系列导航1. 函数简介strcat 函数为 C 库函数之一,用于字符串的拼接。原型:char* strcat(char *dest, const char *src)所属头函数:&amp;lt;string.h&amp;gt;功能:把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。返回:指向目标字符串的首地址。2. 函数复现先说明几点:既然是函数复现,那么...原创 2019-02-24 16:11:54 · 297 阅读 · 0 评论 -
【造轮子】实现 strcmp、strncmp 函数
函数复现系列导航1. 函数简介strlen 函数为 C 库函数之一,用于字符串的比较。原型:int strcmp (const char *str1 ,const char *str2 )所属头函数:&amp;amp;amp;lt;string.h&amp;amp;amp;gt;功能:比较 str1 指向的字符串和 str2 指向的字符串。两个字符串自左向右相比,比较 ASCII 值大小。如果遇到不同的字符,所遇第一对不同字符的...原创 2019-02-24 16:10:46 · 486 阅读 · 3 评论 -
【造轮子】实现 strcpy、strncpy 函数
函数复现系列导航1. 函数简介strcpy 函数为 C 库函数之一,用于字符串的拷贝。原型:char* strcpy(char *dest, const char *src);所属头函数:&amp;lt;string.h&amp;gt;功能:将 src 指向的字符串拷贝到 dest 指向的内存空间,字符串以 ‘\0’ 作为结尾进行判定。返回:指向目标字符串的指针。2. 函数复现先说明几...原创 2019-02-24 16:09:36 · 1358 阅读 · 0 评论 -
【造轮子】实现 strlen 函数
1. 函数简介strlen 函数为 C 库函数之一,用于统计字符串的字符个数。原型:int strlen(const char *s)所属头函数:&amp;lt;string.h&amp;gt;功能:统计 s 指向的字符串的字符个数,当遇到空字符即 NULL 或 ‘\0’ 时停止统计。返回:返回字符串的字符个数。2. 函数复现先说明几点:既然是函数复现,那么基本功能应该和原库函数是一样...原创 2019-02-24 16:00:42 · 538 阅读 · 0 评论 -
【造轮子】实现 strstr、strchr 函数
1. 函数简介strstr 函数为 C 库函数之一,用于检索子串在字符串中首次出现的位置。原型:char *strstr( char *str, char *substr);所属头函数:&amp;amp;amp;amp;amp;amp;amp;amp;lt;string.h&amp;amp;amp;amp;amp;amp;amp;amp;gt;功能:检索 substr 指向的子串在 str 指向的字符串的位置。返回:如果找到,则返回该位置对应的字符原创 2019-02-24 15:57:12 · 544 阅读 · 1 评论