目录
一.字符分类函数
C语言中有⼀系列的函数是专门做字符分类的,也就是⼀个字符是属于什么类型的字符的。 这些函数的使用都需要包含⼀个头文件是 ctype.h
该类函数的使用比较简单,参数符合条件就返回真。
下面我们举例其中的一个函数islower,其余函数的使用也类似。
在C语言中,islower函数是一个标准库函数,用于检查给定的字符是否是小写字母。这个函数定义在头文件<ctype.h>中。如果传入的字符是小写字母('a'到'z'),则islower函数返回非零值(通常为1);如果不是小写字母,则返回0。
下面是一个使用islower函数的简单示例:
下面我们来用上述字符分类函数来完成一个练习:
写⼀个代码,将字符串中的小写字母转大写,其他字符不变。
二.字符转换函数
C语言提供了2个字符转换函数:
上面的代码,我们将小写转大写,是-32完成的效果,有了转换函数,就可以直接使用 toupper 函 数。
三. strlen 的使用和模拟实现
3.1 函数定义
strlen函数是 C 语言标准库中的一个函数,用于计算给定字符串的长度,但不包括终止的空字符('\0'
)。这个函数定义在 <string.h>
头文件中,因此在使用之前需要包含这个头文件。
str:指向以空字符('\0'
)结尾的字符串的指针。
返回值: 回字符串的长度,不包括终止的空字符。返回值类型为 size_t
,这是一个无符号整数类型,能够表示对象的大小。
3.2 使用示例
在这个例子中,strlen(str) 会计算字符串 "Hello, World!"
的长度,不包括末尾的空字符('\0'
),并返回长度值 13
。然后,这个长度值通过 printf
函数输出。
3.3 模拟实现
迭代的写法
递归的写法
四. strcpy 的使用和模拟实现
4.1 函数定义
strcpy 函数是 C 语言标准库中的一个函数,用于复制字符串。它将源字符串(包括终止的空字符 '\0'
)复制到目标字符串数组中。这个函数定义在 <string.h>
头文件中,因此在使用之前需要包含这个头文件。
dest:指向用于存储复制内容的目标数组。
str:指向要复制的源字符串。
返回值:返回目标字符串的指针(即dest的值)。
4.2 使用示例
在这个例子中,strcpy(dest, src);
会将 "Hello, World!"
(包括终止的空字符)从 src
复制到 dest
中。然后,通过 printf
函数输出复制后的字符串。
4.3 模拟实现
五. strcat 的使用和模拟实现
5.1 函数定义
strcat 函数是 C 语言标准库中的一个函数,用于将两个字符串连接起来。它将源字符串(src
)的内容追加到目标字符串(dest
)的末尾,并包括源字符串的终止空字符('\0'
)。这个函数定义在 <string.h>
头文件中,因此在使用之前需要包含这个头文件。
dest:指向目标字符串的指针,该字符串必须有足够的空间来保存两个字符串连接后的结果。
str:指向要追加到目标字符串末尾的源字符串。
返回值: 返回目标字符串的指针(即 dest
的值)。
5.2 使用示例
在这个例子中,strcat(dest, src);
会将 "World!"
追加到 "Hello, "
的末尾,包括其终止的空字符。然后,通过 printf
函数输出连接后的字符串 "Hello, World!"
。
5.3 模拟实现
六. strcmp 的使用和模拟实现
6.1 函数定义
strcmp函数是 C 语言标准库中的一个非常有用的函数,用于比较两个字符串。它的全名是 "string compare",即字符串比较。这个函数通过比较两个字符串的字符,来确定这两个字符串在字典序上的大小关系。
str1:指向第一个要比较的字符串的指针。
str2:指向第二个要比较的字符串的指针。
返回值:
如果 str1
和 str2
字符串相等,则返回 0
。
如果 str1
在字典序上小于 str2
,则返回一个小于 0
的值(通常是 -1
,但具体值依赖于实现)。
如果 str1
在字典序上大于 str2
,则返回一个大于 0
的值(通常是 1
,但具体值也依赖于实现)。
6.2 使用示例
6.3 模拟实现
七. strncpy 的使用和模拟实现
7.1 函数定义
strncpy 函数是 C 语言标准库中的一个函数,用于复制字符串,但与其他字符串复制函数(如 strcpy)不同,strncpy 会限制复制的字符数,这有助于防止缓冲区溢出。它在 <string.h>
头文件中定义。
dest:指向目标数组(即要复制到的字符串)的指针。
src:指向源字符串(即要复制的字符串)的指针。
n:要复制的字符的最大数量。注意,这包括结尾的空字符(如果源字符串中的字符数少于 n
,且源字符串以空字符结尾,则会在目标字符串中保留这个空字符;否则,目标字符串不会自动以空字符结尾)。
返回值:strncpy 函数返回 dest 的指针。
7.2 使用示例
7.3 模拟实现
八. strncat 的使用和模拟实现
8.1 函数定义
strncat 函数是 C 语言标准库中的一个函数,用于将一个字符串(源字符串)的前 n
个字符追加到另一个字符串(目标字符串)的末尾。这个函数与 strn cat 函数相似,但 strncat 允许你指定要追加的最大字符数,这有助于防止缓冲区溢出等安全问题。
函数原型定义在 <string.h>
头文件中,如下所示:
dest:指向目标字符串的指针,即你想要追加内容的字符串。
src:指向源字符串的指针,即你想要追加的字符串。
n:指定从源字符串中最多追加多少个字符到目标字符串中。注意,这个数量不包括终止的空字符('\0'
),但函数会确保在追加完 n
个字符后,目标字符串以空字符结尾。
返回值:strncat 函数返回指向目标字符串(dest)的指针。
8.2 使用示例
8.3 模拟实现
九. strncmp 的使用和模拟实现
9.1 函数定义
strncmp 函数是 C 语言标准库中的一个非常有用的函数,用于比较两个字符串的前 n 个字符。这个函数通过比较两个字符串指定长度的字符序列,来确定这两个字符串在字典序上的大小关系,但它不会检查整个字符串,而是只比较前 n 个字符。这在某些情况下特别有用,比如当你只需要比较字符串的前缀时。
在 <string.h>
头文件中,strncmp 函数的原型定义如下:
str1:指向第一个要比较的字符串的指针。
str2:指向第二个要比较的字符串的指针。
n: 要比较的最大字符数。
返回值:
如果 str1 和 str2 的前 n 个字符完全相同,则返回 0
。
如果在比较的前 n 个字符中,str1 的某个字符在字典序上小于 str2 中对应位置的字符,则返回一个小于 0
的值(通常是 -1
,但具体值依赖于实现)。
如果在比较的前 n 个字符中,str1 的某个字符在字典序上大于 str2 中对应位置的字符,则返回一个大于 0
的值(通常是 1
,但具体值也依赖于实现)。
9.2 使用示例
9.3 模拟实现
十. strstr 的使用和模拟实现
10.1 函数定义
strstr 函数是 C 语言标准库中的一个函数,用于在一个字符串中查找第一次出现另一个字符串的位置。如果找到了指定的子字符串,strstr 会返回一个指向该子字符串首次出现位置的指针;如果没有找到,则返回 NULL
。
函数原型定义在 <string.h>
头文件中,如下所示:
str:是要搜索的原始字符串。
substr:是要在 str 中查找的子字符串。
工作原理:
strstr 函数从 str 的开头开始,逐个字符地搜索 substr。如果找到了 substr 的完整序列(即 substr 中的每个字符都按顺序出现在 str 中),则函数返回一个指向 str 中 substr 首次出现位置的指针。如果 str 中不包含 substr,则返回 NULL
。
10.2 使用示例
10.3 模拟实现
后记
怎么就快开学了呢?啥都没干呢
喜欢的小伙伴们点点赞,点点关注哈,谢谢各位大佬们!
共勉!!!