- <string.h> 是 C 标准库中的一个头文件,提供了一组用于处理字符串和内存块的函数。这些函数涵盖了字符串复制、连接、比较、搜索和内存操作等。
1.1int strcmp(const char* str1, const char* str2)、int strcasecmp(const char *s1, const char *s2)和int strncasecmp(const char *s1, const char *s2, size_t n)
相同点:作用均是比较两个字符串是否相等
(1)若参数s1和s2字符串相同则返回0
(2)若参数s1大于s2,则返回大于0的值
(3)若参数s1小于s2,则返回小于0的值
不同点:strcmp函数会区分字符大小写,其他两个不会
strncasecmp函数,传入的第三个参数作用是将字符串的个数限制在前n个
1.2char *strchr(const char *s, int c)和char *strrchr(const char *s, int c);
相同点:
第一个参数为字符串,第二个参数为字符
作用均是在字符串中查找字符
返回一个指向找到的字符的地址,否则返回null
不同点:
strchr函数是从左到右查找,也就是返回第一次出现该字符的地址,而strrchr函数是返回最后一次出现字符的地址。
1.3char *strcpy(char *dest, const char *src)和char *strncpy(char *dest, const char *src, size_t n)
相同点:
作用均是拷贝src字符串到dest(指向用于存储复制内容的目标数组)里
均返回指向目标字符串的指针
不同点:
strncpy函数将要拷贝的字符个数限制在了前n个,如果源字符串的长度小于 n,则 strncpy() 会在目标字符串的末尾添加一个 null 终止符。
如果源字符串的长度大于或等于 n,则目标字符串不会被 null 终止,除非源字符串的前 n-1 个字符中恰好包含了一个 null 字符。
由于 strncpy() 可能不会为目标字符串添加 null 终止符,因此在使用 strncpy() 后,通常需要手动检查并添加 null 终止符(如果尚未添加的话)。
而strcpy函数会全部进行拷贝,但不会检查目标数组 dest 的大小是否足以容纳源字符串 src。如果目标数组太小,将会导致缓冲区溢出 - <limits.h> 是 C 标准库中的一个头文件,定义了各种数据类型的限制。这些宏提供了有关整数类型(char、short、int、long 和 long long 等)的最大值和最小值的信息。
- <float.h> 是 C 标准库中的一个头文件,定义了与浮点数类型(float、double 和 long double)相关的宏。这些宏提供了浮点数的特性和限制,例如最大值、最小值、精度等。
笔记-C语言库函数
2025-03-05