strncmp()函数是 C 语言中的一个标准库函数,用于比较两个字符串的前n个字符。它类似于strcmp(),但它只会比较最多n个字符,适用于只需要比较部分字符串的情况。

strncmp 函数头文件

strncmp函数的头文件是<string.h>。在使用strncmp函数前,确保在你的 C 代码中包含这个头文件:

#include <string.h>

strncmp 函数原型

int strncmp(const char *s1, const char *s2, size_t n);

strncmp函数比较s1指向的字符串和s2指向的字符串,不超过n个字符;不比较空字符'\0'后面的内容。

参数说明

  • s1:指向第一个字符串的指针;

  • s2:指向第二个字符串的指针;

  • n:要比较的最大字符数;

返回值

strncmp函数返回一个大于、等于或小于0的整数;

如果两个字符串相同,则返回0,否则返回第一个不同字符的差异值。

strncmp 示例代码

strncmp()常用于比较前n个字符是否相同:

#include <stdio.h>
#include <string.h>

int main() {

    char str1[] = "perfcode.com";
    char str2[] = "perFCODE.com";
    
    // 比较前 3 个字符
    if (strncmp(str1, str2, 3) == 0) {
        printf("The first 3 characters are the same.\n");
    } else {
        printf("The first 3 characters are different.\n");
    }
    
    // 比较前 5 个字符
    if (strncmp(str1, str2, 5) == 0) {
        printf("The first 5 characters are the same.\n");
    } else {
        printf("The first 5 characters are different.\n");
    }

    return 0;
}

程序运行结果

The first 3 characters are the same.
The first 5 characters are different.