当前位置: 首页 > 编程笔记 >

在C语言中比较两个字符串是否相等的方法

郦祺
2023-03-14
本文向大家介绍在C语言中比较两个字符串是否相等的方法,包括了在C语言中比较两个字符串是否相等的方法的使用技巧和注意事项,需要的朋友参考一下

C语言strcmp()函数:比较字符串(区分大小写)

头文件:#include <string.h>

strcmp() 用来比较字符串(区分大小写),其原型为:

  int strcmp(const char *s1, const char *s2);

【参数】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和'b'(98)的差值(-33)。

【返回值】若参数s1 和s2 字符串相同则返回0。s1 若大于s2 则返回大于0 的值。s1 若小于s2 则返回小于0 的值。

注意:strcmp() 以二进制的方式进行比较,不会考虑多字节或宽字节字符;如果考虑到本地化的需求,请使用 strcoll() 函数

html" target="_blank">实例】对 4 组字符串进行比较。

#include <string.h>
main(){
  char *a = "aBcDeF";
  char *b = "AbCdEf";
  char *c = "aacdef";
  char *d = "aBcDeF";
  printf("strcmp(a, b) : %d\n", strcmp(a, b));
  printf("strcmp(a, c) : %d\n", strcmp(a, c));
  printf("strcmp(a, d) : %d\n", strcmp(a, d));
}

输出结果:

strcmp(a, b) : 32
strcmp(a, c) :-31
strcmp(a, d) : 0

C语言strcasecmp()函数:判断字符串是否相等(忽略大小写)
头文件:#include <string.h>

定义函数:

int strcasecmp (const char *s1, const char *s2);

函数说明:strcasecmp()用来比较参数s1 和s2 字符串,比较时会自动忽略大小写的差异。

返回值:若参数s1 和s2 字符串相同则返回0。s1 长度大于s2 长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0 的值。

范例

#include <string.h>
main(){
  char *a = "aBcDeF";
  char *b = "AbCdEf";
  if(!strcasecmp(a, b))
  printf("%s=%s\n", a, b);
}

执行结果:

aBcDeF=AbCdEf
 类似资料:
  • 本文向大家介绍JavaScript比较两个对象是否相等的方法,包括了JavaScript比较两个对象是否相等的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript比较两个对象是否相等的方法。分享给大家供大家参考。具体如下: 在Python中可以通过cmp()内建函数来比较两个对象所包涵的数据是否相等(数组、序列、字典)。但是在javascript语言中并没有相关的实现。

  • 本文向大家介绍C语言字符串大小比较,包括了C语言字符串大小比较的使用技巧和注意事项,需要的朋友参考一下 C语言字符串大小比较 以上所述就是本文的全部内容了,希望大家能够喜欢。

  • 本文向大家介绍Java比较两个List的值是否相等的方法,包括了Java比较两个List的值是否相等的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java比较两个List的值是否相等的方法。分享给大家供大家参考。具体如下: 假设两个队列 {1,2,3,4} 和 {4,3,2,1} ,这个方法用来比较这两个队列中包含的值是否相等 希望本文所述对大家的java程序设计有所帮助。

  • 我做了这个扩展方法来检查一个类型是否实现了一个接口。要使其正常工作,它需要比较两种类型。然而,这种比较似乎并不现实: 这是我比较失败的情况: 正如注释中提到的,如果我比较类型名,那么它总是按照预期工作。我想知道这是怎么回事。

  • 比较两个NumPy数组是否相等的最简单方法是什么(其中相等定义为:A=B iff,用于所有索引i:

  • 问题内容: 字符串部分是: 但是当我与: 以上结果为假, 我很困惑,所以有人可以告诉我为什么吗? 问题答案: 该==运营商比较对象引用,在不值秒。 要比较 的值,请使用以下方法: Java中的任何其他对象都是如此-比较值时,请始终使用equals方法而不是使用==运算符。 该方法是的一部分,并且应被将以一种或另一种方式进行比较的类覆盖。