【C库函数】strcmp函数详解

简介: strcmp函数详解

strcmp

       比较两个字符串

函数原型

intstrcmp(constchar*string1, constchar*string2);

参数详解

参数 string1 string2
解析 字符串1(主体) 字符串2

返回值详解

返回一个整数

  • 第一个字符串大于第二个字符串,则返回大于0的数字
  • 第一个字符串等于第二个字符串,则返回0
  • 第一个字符串小于第二个字符串,则返回小于0的数字

函数详解

  一般大家都会对strcmp函数产生误区,以为strcmp是比较两个字符串的长度,其实不是的!


  strcmp是比较字符串中对应位置上的字符大小(ASC II码值大小),如果相同,就比较下一对,直到不同或者都遇到'\0'。


如下图,小的字符所在的字符串小于另一个字符串,所以arr1<arr2


——————0238f4a1b1daf094d32aa056f2ca0aa7_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aiB5aiB5rKB5rKB,size_20,color_FFFFFF,t_70,g_se,x_16.png

上代码,我们来演示一下

大家能够发现,我在Visual Stduios编译器编译大于返回1、等于返回、小于返回-1,但是并不是所有的编译器都跟vs返回的值一样。

标注规定是返回大于0等于0或小于0

所有大家在判断字符字符串大小时千万不能像下列写法

int main()
{
  char arr1[] = "abcd";
  char arr2[] = "abq";
  int ret = strcmp(arr1, arr2);
  if (ret == 1)
  {
  printf("大于");
  }
  else if (ret == -1)
  {
  printf("小于");
  }
  else {
  printf("等于");
  }
  return 0;
}


这种写法是错误的写法,不能那返回值直接判断是否等于1或-1,因为返回值也可能返回2 、4 、-5等,所以我们要把判断条件改为"ret>0" "ret <0"。

#include<stdio.h>
#include<string.h>
int main()
{
  char arr1[] = "abcd";
  char arr2[] = "abq";
  int ret = strcmp(arr1, arr2);
  if (ret >0)
  {
  printf("大于");
  }
  else if (ret <0)
  {
  printf("小于");
  }
  else {
  printf("等于");
  }
  return 0;
}

797e8aa4ab50adfd5706cd359b9e0060_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5aiB5aiB5rKB5rKB,size_11,color_FFFFFF,t_70,g_se,x_16.png

相关文章
|
编译器 C语言 C++
【C语言】malloc()函数详解(动态内存开辟函数)
【C语言】malloc()函数详解(动态内存开辟函数)
3242 2
|
存储 安全 数据库
数据库必知词汇:分级存储
分级存储是将数据采取不同的存储方式分别存储在不同性能的存储设备上,减少非重要性数据在一级本地磁盘所占用的空间,还可加快整个系统的存储性能。
1383 0
|
数据安全/隐私保护
fiddler抓包-查看get与post请求参数
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/81566563 Fiddler抓包3-查看get与post请求 前言 前面两篇关于Fiddler抓包的一些基本配置,配置完之后就可以抓到我们想要的数据了,接下来就是如何去分析这些数据。
6844 0
|
10月前
|
存储 自然语言处理 监控
基于DeepSeek的智能客服系统安全与隐私保护:构建可信赖的服务
在前四篇文章中,我们完成了智能客服系统的开发、部署、优化和扩展。本文聚焦于安全与隐私保护,探讨如何构建安全可靠的智能客服系统。内容涵盖数据安全(加密、脱敏、备份)、系统安全(输入验证、身份认证、日志监控)和隐私保护(隐私政策、数据最小化、访问控制),确保用户数据安全及系统稳定运行。通过这些措施,我们可以打造一个可信赖的智能客服系统,为用户提供更好的服务体验。
|
存储 SQL Oracle
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
02-PostgreSQL 存储过程的进阶介绍(含游标、错误处理、自定义函数、事务)
|
数据挖掘 数据格式 Python
《Python数据分析实战:利用Pandas处理大规模数据集》
《Python数据分析实战:利用Pandas处理大规模数据集》
216 1
|
存储 C语言
C语言中的动态数组技术详解
C语言中的动态数组技术详解
567 0
|
数据可视化 算法 数据挖掘
基于geopandas的空间数据分析-深入浅出分层设色
基于geopandas的空间数据分析-深入浅出分层设色
269 2
|
C++
Vscode 内存过高的解决办法
Vscode 内存过高的解决办法
2541 0
|
缓存
鸿蒙实现获取应用缓存和清理缓存
鸿蒙实现获取应用缓存和清理缓存
841 0