21xrx.com
2024-12-22 22:43:54 Sunday
登录
文章检索 我的文章 写文章
C++字符串比较函数
2023-07-11 11:01:33 深夜i     --     --
C++ 字符串 比较函数 strcmp() strncmp()

在C++编程语言中,字符串比较是一个常见的操作。在比较字符串时,我们通常会使用字符串比较函数。下面我们将会介绍几个在C++中常用的字符串比较函数。

1. strcmp()

strcmp()函数是一个非常常用的字符串比较函数。它的原型如下:

int strcmp(const char* str1, const char* str2);

函数的作用是比较str1和str2所指向的字符串。如果str1和str2相等,函数返回0;如果str1小于str2,函数返回一个负数;如果str1大于str2,函数返回一个正数。

例如,下面的代码演示了如何使用strcmp()函数来比较两个字符串:

char str1[] = "Hello";

char str2[] = "World";

int result = strcmp(str1, str2);

if (result == 0)

  cout << "str1 equals str2" << endl;

else if (result < 0)

  cout << "str1 is less than str2" << endl;

else

  cout << "str1 is greater than str2" << endl;

在上面的例子中,str1小于str2,因此输出的是"str1 is less than str2"。

2. strncmp()

strncmp()函数和strcmp()函数的作用类似,不同的是在比较时可以指定要比较的字符个数。它的原型如下:

int strncmp(const char* str1, const char* str2, size_t num);

函数的前两个参数和strcmp()函数一样,num参数指定要比较的字符个数。

例如,下面的代码演示了如何使用strncmp()函数来比较两个字符串的前三个字符:

char str1[] = "Hello";

char str2[] = "Help";

int result = strncmp(str1, str2, 3);

if (result == 0)

  cout << "the first three characters of str1 are equal to the first three characters of str2" << endl;

else if (result < 0)

  cout << "the first three characters of str1 are less than the first three characters of str2" << endl;

else

  cout << "the first three characters of str1 are greater than the first three characters of str2" << endl;

在上面的例子中,str1和str2的前三个字符都是"Hel",因此输出的是"the first three characters of str1 are equal to the first three characters of str2"。

3. strcasecmp()

strcasecmp()函数是一个不区分大小写的字符串比较函数。它的原型如下:

int strcasecmp(const char* str1, const char* str2);

函数的作用和strcmp()函数类似,不同之处在于他不区分大小写。

例如,下面的代码演示了如何使用strcasecmp()函数来比较两个字符串:

char str1[] = "HeLLo";

char str2[] = "hello";

int result = strcasecmp(str1, str2);

if (result == 0) {

  cout << "str1 equals str2 (case insensitive)" << endl;

}

else if (result < 0) {

  cout << "str1 is less than str2 (case insensitive)" << endl;

}

else {

  cout << "str1 is greater than str2 (case insensitive)" << endl;

}

在上面的例子中,str1和str2是相等的,因此输出的是"str1 equals str2 (case insensitive)"。

总结

在C++编程中,字符串比较是一个非常常见的操作。上面介绍了一些常用的字符串比较函数,包括strcmp()、strncmp()和strcasecmp()。在实践中,应该针对具体问题选择合适的函数来完成字符串比较。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复