C++ strncmp()和strcmp()之间的区别

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

strncmp()

函数strncmp() 用于比较左字符串和右字符串的前n个字符。它的工作方式与strcmp() 相同。当左字符串的匹配字符的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” 头文件中 . 这个函数用于比较字符串参数。它以字典顺序比较字符串,也就是逐个字符比较两个字符串。它从字符串的第一个字符开始比较,直到找到相等的字符或者找到NULL字符为止。

如果两个字符串的第一个字符相等,它就会检查第二个字符,依此类推。这个过程会一直持续下去,直到找到NULL字符或者找到两个不相等的字符。如果两个字符串完全相同,即两个字符串的字符相同,它会返回零。

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

这里是C语言中strcmp()的语法。

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

这里,

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

  • rightString - 用于比较第一个字符串的第二个字符串。

在C语言中的示例

示例

#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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程