strcmp函数——比较两个字符串是否相等

库函数头文件: #include<string.h>

//strcmp,比较两个字符串是否相等,如果相等返回0;如果第一个参数中的字符串大于第二个参数的字符串,返回>0的数字;反之返回<0的数字。
    
    //字符串比较的标准:
    //1. strcmp比较的不是字符串的长度

//2.比较的是字符串对应位置的字符大小,如果相同,就比较下一对,直到不同或者遇到\0.

解释:

//比较对于字符比较的是ASCII码表对应字符的转换数字大小,不管第一个字符串的长度比第     二个字符串长多少,只要比较相对应的字符

//如果第二个字符串的正在比较的字符的ASCII码值大于第一个字符串正在比较字符的ASCII码值,就直接判断第二个字符串比第一个字符串大,则返回<0的数

//同理,第一个比第二个大则返回>0的数

//strcmp函数int main()
{char arr1[] = "bcdef";char arr2[] = "bcdf";int ret = strcmp(arr1, arr2);printf("%d\n", ret);return 0;
}


模拟实现strcmp函数

//模拟实现strcmp函数int my_strcmp(const char* s1, const char* s2)//const 提高代码的安全性
{assert(s1 && s2);//assert断言防止出现空指针while (*s1 == *s2)//拿两对字符开始从头对应比较,相等进入循环,不相等则跳出循环{if (*s2 == '\0')//当*s1(或者*s2)在相等的前提下遍历到'\0',则证明两个字符串完全相等,从而return 0;{return 0;}s1++;s2++;//每次循环向后++遍历两个字符串}return *s1 - *s2;//如果两个字符串遍历过程中发现对应字符不相等则跳出循环来到这,对应字符会转换成相应的ASCII码值进行相减
}int main()
{char arr1[] = "abcd";char arr2[] = "abc";int ret = my_strcmp(arr1, arr2);printf("%d\n", ret);return 0;
}

(代码解释请看注释)

思路:拿两个字符串对应比较字符,放在循环中遍历比较,全部相等返回0;不等则返回相减值

进阶C语言------>字符函数和字符串函数------strcmp函数相关推荐

  1. C语言试题三十三之比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。

    1. 题目 请编写函数function,它的功能是:比较两个字符串的长度,(不得调用c语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度相同,则返回第一个字符串. 2 .温馨提示 ...

  2. 25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字 符串。

    25.请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串.若两个字符串长度相同,则返回第一个字 符串. 例如,输入:beijing ...

  3. C语言 字符数组 和 字符串 详解

    C语言 字符数组 和 字符串 详解 用来存放字符的数组称为字符数组,例如: char a[10]; //一维字符数组 char b[5][10]; //二维字符数组 char c[20]={'c', ...

  4. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  5. 【小白学习C++ 教程】十七、C++ 中的字符数组和字符串常见的函数

    @Author:Runsen 字符数组 char mychar[6] = {'H', 'e', 'l', 'l', 'o'}; 下面定义的字符串数组在 C/C++ 中的内存表示 #include &l ...

  6. 【C 语言】二级指针作为输入 ( 指针数组 | 指针数组排序 | 字符串排序 | strcmp 函数 )

    文章目录 一.strcmp 函数 二.指针数组排序 ( 字符串排序 ) 二.完整代码示例 一.strcmp 函数 strcmp 是 String Compare 缩写 , 该函数用于比较两个字符串 ; ...

  7. C语言字符数组与字符串的使用及加结束符‘\0‘的问题

    1.字符数组的定义与初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y ...

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

    转自http://www.jb51.net/article/37456.htm 1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ ...

  9. c语言在数组输出字母,c语言字符数组与字符串的使用详解

    1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y' ...

  10. 字符数组和字符串的区别,C语言字符数组和字符串区别详解

    C 语言中并不存在字符串这个数据类型,而是使用字符数组来保存字符串.那么,字符数组就一定是字符串吗? 不一定,字符数组和字符串千万不要混淆.字符串是一种特殊的字符数组,并且C语言提供了大量适用于字符串 ...

最新文章

  1. Linux LVM卷挂载
  2. easyui validatebox 验证类型
  3. Spark Streaming的工作机制
  4. 块存储性能--阿里云ECS磁盘
  5. android编译make错误——javalib.jar invalid header field”、classes-full-debug.jar 错误 41 ...
  6. 使用电脑替代人力的几个优点
  7. Flightgear 编译
  8. 编译原理——设计一个词法分析程序,实现对C程序设计语言的源程序(自定)的词法分析
  9. 每天,每周,每月每隔cron表达式
  10. !! A股历史平均市盈率走势图
  11. AutoCAD2011,2020安装教程
  12. 5月31日互联网理财产品收益播报:余额宝再跌
  13. WhatsApp聊天记录迁移新手机,备份如何找回和删除?
  14. Lively Wallpaper —— 优秀的开源视频壁纸软件
  15. 【GNSS】GREAT多频多系统GREAT-UPD开源代码-第4.1章 代码解读之gnss.h/gnss.cpp
  16. google黑客常用搜索语句
  17. html飞机翼布局,基础知识 | 飞机客舱布局及主要设施介绍
  18. 从苏宁电器到卡巴斯基第25篇:难忘的三年硕士时光 I
  19. 儿童节html5小游戏,适合儿童节活动上玩的亲子互动小游戏
  20. matlab中函数的定义和使用

热门文章

  1. 盛志凡:TVOS标准体系建设及产业化推进与广电终端智能化
  2. 对无迹卡尔曼滤波(UKF)和粒子滤波(PF)的理解
  3. 大数据职业发展规划和技能
  4. JAVA unusual问题收集
  5. 征信大数据的盈利模式,怎么赚钱?
  6. 计算机网络应用基础培训教案
  7. linux和windows两台电脑通信,synergy-两台电脑共享一套鼠标键盘-Linuxwindows详细教程...
  8. 智能交通行业车车通信和车路通信成为ITS下一个技术亮点
  9. 初识深度学习(将各方所写融合)
  10. 基于SMS短信平台给手机发送短信