在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() 函数。

【实例】对 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
(0)

相关推荐

  • c语言字符数组与字符串的使用详解

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用

  • C语言字符串操作总结大全(超详细)

    1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1

  • C语言判断字符串是否以str2开头代码

    代码很简洁,功能也很简单,这里就不多废话了,直接把代码奉献给大家,有需要的小伙伴可以来参考下 #include <stdlib.h> #include <string.h> #include <stdio.h> /**判断str1是否以str2开头 * 如果是返回1 * 不是返回0 * 出错返回-1 * */ int is_begin_with(const char * str1,char *str2) { if(str1 == NULL || str2 == NULL

  • C语言切割多层字符串(strtok_r strtok使用方法)

    1. strtok介绍 众所周知,strtok可以根据用户所提供的分割符(同时分隔符也可以为复数比如",.")将一段字符串分割直到遇到"\0". 比如,分隔符="," 字符串="Fred,John,Ann" 通过strtok 就可以把3个字符串 "Fred"      "John"       "Ann"提取出来. 上面的C代码为 复制代码 代码如下: int in=

  • 深入C语言把文件读入字符串以及将字符串写入文件的解决方法

    1.纯C实现 复制代码 代码如下: FILE *fp; if ((fp = fopen("example.txt", "rb")) == NULL) {  exit(0); } fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); char *tmp = (char *) malloc(sizeof(char) * fileLen); fseek(fp, 0, SEEK_SET); fread(tmp, fileLen,

  • C语言实现将字符串转换为数字的方法

    本文实例讲述了C语言实现将字符串转换为数字的方法.分享给大家供大家参考.具体实现方法如下: C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: 复制代码 代码如下: # include <stdio. h> # include <stdlib. h> void main (void) ; void main (void) {     int num;     char * str = &qu

  • 使用C语言提取子字符串及判断对称子字符串最大长度

    先来看一个使用C语言从字符串中提取子字符串的基本方法总结: #include <stdio.h> /*处理中文字符*/ /*遍历字符串,非ASCII字符读取2个字节,ASCII读取一个字节,获取字符串长度*/ int StrLenU(const char* string) { int len = 0 ; const char* p = string; while(*p++ != '\0') { if(*p > 0x80 || *p < 0) { p++; } len++; } re

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

    C语言strcmp()函数:比较字符串(区分大小写) 头文件:#include <string.h> strcmp() 用来比较字符串(区分大小写),其原型为: int strcmp(const char *s1, const char *s2); [参数]s1, s2 为需要比较的两个字符串. 字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值.strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回.例

  • JavaScript中判断两个字符串是否相等的方法

    先将用户的输入值全部转换为大写(或小写),然后再行比较: var name = document.form1.txtUserName.value.toLowerCase(); if(name == "urname") { // statements go here. } JavaScript有两种相等运算符.一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句: var strA = "

  • js中比较两个对象是否相同的方法示例

    本文实例讲述了js中比较两个对象是否相同的方法.分享给大家供大家参考,具体如下: js中,很轻易就可以比较2个普通字符串/数字是否相同,但是,如何比较2个对象是否相同呢? 在此我便给出较为简单的方法,如下: //比较2个对象是否相同 function isObjEqual(o1,o2){ var props1 = Object.getOwnPropertyNames(o1); var props2 = Object.getOwnPropertyNames(o2); if (props1.leng

  • jsp页面中表达式语言中的$符号不起作用的解决方法

    今天myeclipse里部署了之前做的一个测试项目,发现jsp里的$符号tomcat启动后页面上显示出来了,百度搜了下别人也有类似的问题出现过.经提醒原来是web.xml配置的version设置的是2.5而我tomcat5启动的.是tomcat的版本低于web的版本,从而导致$符号不能正常使用. 后将tomcat5改用tomcat6.jdk采用1.6 启动spring2.5项目.$显示问题解决. 以下是网上摘录的详细说明: 在jsp页面中用表达式语言中的$符号,如${pageScope.titl

  • php简单判断两个字符串是否相等的方法

    本文实例讲述了php简单判断两个字符串是否相等的方法.分享给大家供大家参考.具体实现方法如下: <?php function strcomp($str1,$str2){ if($str1 == $str2){ return TRUE; }else{ return FALSE; } } echo strcomp("First string","Second string"); //Returns FALSE echo strcomp("A string

  • php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创

    本文实例讲述了php使用strpos判断字符串中数字类型子字符串出错的解决方法.分享给大家供大家参考,具体如下: 一.问题: 最近的开发中在程序代码里有一个随机数是否在给定字符串里的判断,我用了如下的测试代码: $string='中奖号码:3'; $numtmp=mt_rand(1,10); if(strpos($string,$numtmp)!==false){ echo "恭喜中奖!中奖号码:".$numtmp; }else{ echo "谢谢!欢迎再来,中奖号码不是&q

  • php实现比较两个字符串日期大小的方法

    本文实例讲述了php实现比较两个字符串日期大小的方法.分享给大家供大家参考.具体如下: <?php function dateBDate($date1, $date2) { // 日期1是否大于日期2 $month1 = date("m", strtotime($date1)); $month2 = date("m", strtotime($date2)); $day1 = date("d", strtotime($date1)); $da

  • 对变量赋值的理解--Pyton中让两个值互换的实现方法

    #Pyton中让两个值互换的实现方法 #方法一:可以理解为相当于是同时赋值 a = 5 b = 4 a,b = b,a print(a,b) #方法二:可以理解为拿箱子过程 c = 10 d = 20 e = c #定义第三个人e,将箱子 c 给 e 拿着 c = d #将箱子 d 给到 c d = e #将箱子 e 给到 d ,交换完成 print(c,d) 以上这篇对变量赋值的理解--Pyton中让两个值互换的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我

  • C语言中判断两个IPv4地址是否属于同一个子网的代码

    问题描述: 现给定两个IPv4地址,和一个子网掩码,判断是否属于同一个子网,若属于,输出1,否则输出0. 例如输入: 172.16.1.3 172.16.1.35 255.255.255.224 输出: 0 解决方案: 首先将字符串格式的IP地址转化为4字节的IP地址,然后使用与(&)运算,分别将两个IP地址与掩码相与,若最后的值相同,则为同一个子网,否则不是. 以下函数的作用是将字符串格式的IP转化为4字节的IP(因为是4字节,所以使用int,但不同平台的int所占的字节好像不同哈~不太确定)

  • PHP中比较两个字符串找出第一个不同字符位置例子

    一般的做法就会这样: 复制代码 代码如下: <?phpfor ($offset = 0; $offset < $length; ++$offset) {    if ($str1[$offset] !== $str2[$offset]) {        return $offset;    }} 而问题下面给出的最佳答案是用异或操作符( ^ ),以前从来没用过这个操作符,也不知道能用到什么地方,今天算是学到. 因为一般情况下,当你对两个字符串进行异或操作的时候,相同的字符的异或结果是null

随机推荐