C语言字符串比较strncmp函数

C语言strncmp函数教程

C 语言 中我们需要比较两个 字符串 ,除了可以使用 strcmp 函数、strcasecmp 函数,还可以使用 strncmp 函数

strncmp 函数与 strcmp 函数的区别就是,strncmp 函数可以选择比较前 n 个 字符,而不是比较整个字符串大小。

strncmp函数详解

语法

int strncmp(const char *str1, const char *str2, int n);

参数

参数 描述
str1 要进行比较的第一个字符串。
str2 要进行比较的第二个字符串。
n 要比较的长度。

返回值

此函数功能即比较字符串 str1 和 str2 的前 n 个字符。如果前 n 字节完全相等,返回值就为 0;在前 n 字节比较过程中,如果出现 str1[i] 与 str2[i] 不等,则返回 str1[i] - str2[i] 。

技术细节

使用 strncmp 函数,需要引入 string.h 头文件。

案例

C语言字符串比较

使用 strncmp() 函数,实现字符串的比较

#include <stdio.h> #include <string.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); char str1[10] = "HaiCoder"; char str2[10] = "HaiCoder"; int retNCmp = strncmp(str1, str2, 8); printf("retNCmp = %d\n", retNCmp); return 0; }

程序运行后,控制台输出如下:

17_C语言字符串比较strncmp函数.png

我们首先定义了一个字符数组 str1,并赋值,接着,我们再次定义了一个 字符数组 str2 并赋值。接着,我们使用了 strncmp 函数比较了两个字符数组的前 8 个字节,因为两个字符数组相等,所以返回了 0。现在,我们修改字符串,使他们不相等,修改如下:

#include <stdio.h> #include <string.h> int main() { printf("嗨客网(www.haicoder.net)\n\n"); char str1[3] = "Hai"; char str2[10] = "HaiCoder"; int retCmp = strncmp(str1, str2, 3); printf("retCmp = %d\n", retCmp); return 0; }

程序运行后,控制台输出如下:

18_C语言字符串比较strncmp函数.png

这次,我们修改了字符串 str1,使其与 str2 不相等,但因为字符串 str1 和字符串 str2 的前三个字符相等,同时,我们使用了 strncmp 比较的是字符串的前三个字符,因此,返回了 0,即相等。

C语言字符串比较strncmp函数总结

strncmp 函数与 strcmp 函数的区别就是,strncmp 函数可以选择比较前 n 个字符,而不是比较整个字符串大小。