首页 > 编程笔记

C语言strncmp():比较两个字符串

strncmp() 是 C语言的一个标准库函数,定义在<string.h>头文件中。

strncmp() 用于比较两个字符串的前 n 个字符,函数的原型如下:
int strncmp(const char *s1, const char *s2, size_t n);

参数

返回值

如果 s1 和 s2 的前 n 个字符完全相同,函数返回 0,否则返回非 0 数:
【实例】下面是一个 C语言示例代码,演示了如何使用 strncmp() 函数。
#include <stdio.h>
#include <string.h>

int main() {
    char str1[] = "Hello, World!";
    char str2[] = "Hello, C!";
    size_t n = 7; // 要比较的字符数

    // 比较字符串的前n个字符
    int result = strncmp(str1, str2, n);

    if (result == 0) {
        printf("str1 和 str2 的前%zu个字符相同。\n", n);
    } else if (result < 0) {
        printf("str1 的前%zu个字符在字典序上位于 str2 之前。\n", n);
    } else {
        printf("str1 的前%zu个字符在字典序上位于 str2 之后。\n", n);
    }

    return 0;
}
输出结果为:

str1 和 str2 的前7个字符相同。

示例中比较了两个字符串的前 7 个字符,也就是 "Hello, "和 "Hello, ",由于这两个字符串的前 7 个字符是相同的,因此 strncmp() 返回 0。

strncmp() 是一种更安全的比较字符串的方法,特别是当你只想比较字符串的一部分,或者当你不确定字符串的大小,并且想避免可能的缓冲区溢出时。

推荐阅读