21xrx.com
2024-09-20 05:49:42 Friday
登录
文章检索 我的文章 写文章
C++字符串比较函数详解
2023-07-03 07:37:28 深夜i     --     --
C++ 字符串比较函数 详解

在C++编程中,我们经常需要比较不同的字符串,判断它们是否相等。C++提供了一系列字符串比较函数来满足这个需求。本篇文章将简要介绍C++中常用的字符串比较函数以及它们的使用方法。

1. strcmp函数

strcmp函数用于比较两个字符串的大小关系。该函数的语法如下:


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

该函数将比较str1和str2两个字符串的大小,如果相等则返回0,如果str1大于str2,则返回大于0的值,如果str1小于str2,则返回小于0的值。

例如:


const char* str1 = "hello";

const char* str2 = "world";

int result = strcmp(str1, str2); // result的值为-1

代码中,由于str1字符串的字典序小于str2字符串,所以strcmp函数返回了一个小于0的值。

2. strncmp函数

和strcmp函数类似,strncmp函数也是用于比较两个字符串的大小关系。但是,该函数除了比较前n个字符之外,其他方面与strcmp函数的使用方法基本一致。该函数的语法如下:


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

该函数将比较str1和str2两个字符串的前n个字符的大小,如果相等则返回0,如果str1大于str2,则返回大于0的值,如果str1小于str2,则返回小于0的值。

例如:


const char* str1 = "hello";

const char* str2 = "world";

int result = strncmp(str1, str2, 3); // result的值为-5

代码中,由于str1字符串的前三个字符"h"、"e"、"l"的字典序小于str2字符串的前三个字符"w"、"o"、"r",所以strncmp函数返回了一个小于0的值。

3. strcasecmp函数

strcasecmp函数用于比较两个字符串的大小关系,但与strcmp函数不同的是,该函数不区分大小写。该函数的语法如下:


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

该函数将比较str1和str2两个字符串的大小,如果相等则返回0,如果str1大于str2,则返回大于0的值,如果str1小于str2,则返回小于0的值。不同点在于,当比较的时候会将大小写字母视为相同的字符。

例如:


const char* str1 = "Hello";

const char* str2 = "world";

int result = strcasecmp(str1, str2); // result的值为1

代码中,由于str1字符串的字典序大于str2字符串,所以strcasecmp函数返回了一个大于0的值。

4. strncasecmp函数

和strcasecmp函数类似,strncasecmp函数也是用于比较两个字符串的大小关系。但是,该函数除了比较前n个字符之外,其他方面与strcasecmp函数的使用方法基本一致。该函数的语法如下:


int strncasecmp(const char *str1, const char *str2, size_t n);

该函数将比较str1和str2两个字符串的前n个字符的大小,如果相等则返回0,如果str1大于str2,则返回大于0的值,如果str1小于str2,则返回小于0的值。不同点在于,当比较的时候会将大小写字母视为相同的字符。

例如:


const char* str1 = "Hello";

const char* str2 = "world";

int result = strncasecmp(str1, str2, 3); // result的值为8

代码中,由于str1字符串的前三个字符"H"、"e"、"l"的字典序大于str2字符串的前三个字符"w"、"o"、"r",所以strncasecmp函数返回了一个大于0的值。

总结

本文简要介绍了C++中常用的字符串比较函数的使用方法,包括strcmp、strncmp、strcasecmp和strncasecmp函数。需要注意的是,使用这些函数的时候,需要传入的参数是指向字符串的指针。这些函数都是很常用的字符串处理函数,在实际编程中可以灵活运用,帮助我们更方便地处理字符串。

  
  

评论区

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