C语言strncmp():比较两个字符串
strncmp() 是 C语言的一个标准库函数,定义在
strncmp() 用于比较两个字符串的前 n 个字符,函数的原型如下:
【实例】下面是一个 C语言示例代码,演示了如何使用 strncmp() 函数。
strncmp() 是一种更安全的比较字符串的方法,特别是当你只想比较字符串的一部分,或者当你不确定字符串的大小,并且想避免可能的缓冲区溢出时。
<string.h>
头文件中。strncmp() 用于比较两个字符串的前 n 个字符,函数的原型如下:
int strncmp(const char *s1, const char *s2, size_t n);
参数
- s1 和 s2:分别指向要比较的字符串。
- n:要比较的字符的个数。
返回值
如果 s1 和 s2 的前 n 个字符完全相同,函数返回 0,否则返回非 0 数:- 比较首个不相等的字符,如果 s1 中的字符更大,函数返回 >0 的数;
- 比较首个不相等的字符,如果 s2 中的字符更大,函数返回 <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() 是一种更安全的比较字符串的方法,特别是当你只想比较字符串的一部分,或者当你不确定字符串的大小,并且想避免可能的缓冲区溢出时。