strncmp() 函数功能说明
strncmp() 是 C 语言标准库 string.h 中的一个字符串比较函数,用于比较两个字符串的前 n 个字符。
函数原型
int strncmp(const char *str1, const char *str2, size_t n);功能描述
strncmp() 比较字符串 str1 和 str2 的前 n 个字符,比较时会一直进行直到出现不同的字符或遇到空字符(‘\0’)或比较完前 n 个字符为止。
返回值
- 小于 0:如果 str1的前n个字符小于str2的前n个字符
- 等于 0:如果 str1的前n个字符等于str2的前n个字符
- 大于 0:如果 str1的前n个字符大于str2的前n个字符
比较是基于字符的 ASCII 值进行的。
与 strcmp() 的区别
strncmp() 与 strcmp() 的主要区别在于:
- strcmp()比较整个字符串直到遇到空字符
- strncmp()只比较前 n 个字符,即使没有遇到空字符
示例代码
#include <stdio.h>
#include <string.h>
int main() {
    char str1[] = "Hello World";
    char str2[] = "Hello C";
    // 比较前5个字符
    int result = strncmp(str1, str2, 5);
    if (result == 0) {
        printf("前5个字符相同\n");
    } else {
        printf("前5个字符不同\n");
    }
    // 比较前7个字符
    result = strncmp(str1, str2, 7);
    if (result < 0) {
        printf("str1 小于 str2\n");
    } else if (result > 0) {
        printf("str1 大于 str2\n");
    } else {
        printf("str1 等于 str2\n");
    }
    return 0;
}注意事项
- strncmp()是安全的,因为它限制了比较的字符数量,可以防止缓冲区溢出
- 如果任一字符串长度小于 n,比较会在遇到第一个空字符时停止
- 比较是按字典顺序进行的,基于字符的 ASCII 值
 我的书签
 我的书签
                                 添加书签
 添加书签 移除书签
 移除书签