C/C++中strncmp()和strcmp()的区别


strncmp()

strncmp()函数用于比较两个字符串的前n个字符。其工作方式与strcmp()相同。如果左边字符串匹配字符的ASCII值大于右边字符串的匹配字符的ASCII值,则返回大于零的值。如果左边字符串匹配字符的ASCII值小于右边字符串的匹配字符的ASCII值,则返回小于零的值。

以下是C语言中strncmp()函数的语法

int strncmp ( const char *leftString, const char *rightString, size_t number );

其中:

  • leftString  − 要与右边字符串进行比较的第一个字符串。

  • rightString  − 用于与第一个字符串进行比较的第二个字符串。

  • number − 要比较的最大字符数。

以下是一个C语言中strncmp()的示例:

示例

在线演示

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

int main() {
   char str1[] = "blank";
   char str2[] = "Hello World!";
   int result = strncmp(str1, str2, 1);

   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");

   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

输出

以下是输出结果

Strings are unequal
Value returned by strcmp() is: 26

strcmp()

函数strcmp()是一个内置库函数,声明在"string.h"头文件中。此函数用于比较字符串参数。它按字典顺序比较字符串,这意味着它逐个字符地比较两个字符串。它从字符串的第一个字符开始比较,直到两个字符串的字符相等或找到空字符。

如果两个字符串的第一个字符相等,则检查第二个字符,依此类推。这个过程将持续到找到空字符或两个字符不相等为止。如果两个字符串相同,即两个字符串中的字符都相同,则返回零。

如果左边字符串匹配字符的ASCII值大于右边字符串的匹配字符的ASCII值,则返回大于零的值。如果左边字符串匹配字符的ASCII值小于右边字符串的匹配字符的ASCII值,则返回小于零的值。

以下是C语言中strcmp()函数的语法:

int strcmp(const char *leftString, const char *rightString );

其中:

  • leftString − 要与右边字符串进行比较的第一个字符串。

  • rightString − 用于与第一个字符串进行比较的第二个字符串。

以下是一个C语言中strcmp()的示例:

示例

在线演示

#include<stdio.h>
#include<string.h>
int main() {
   char str1[] = "hello World!";
   char str2[] = "Hello World!";
   int result = strcmp(str1, str2);

   if (result==0)
   printf("Strings are equal");
   else
   printf("Strings are unequal");

   printf("\nValue returned by strcmp() is: %d" , result);
   return 0;
}

输出

以下是输出结果

Strings are unequal
Value returned by strcmp() is: 32

更新于:2023年9月12日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告