【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

相关文章
|
6月前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy
探索C语言库函数:字符串拷贝函数strcpy
61 0
|
6月前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
6月前
|
C语言
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现2
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现
|
6月前
|
存储 C语言
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现1
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现
|
6月前
|
安全 程序员 C语言
探索C语言库函数:字符串拷贝函数strcpy()
探索C语言库函数:字符串拷贝函数strcpy()
33 0
|
C语言
strcmp函数和strncmp函数【C语言】
strcmp函数和strncmp函数【C语言】
|
C语言
strstr函数strtok函数strerror函数详解【C语言】
strstr函数strtok函数strerror函数详解【C语言】
|
程序员 C语言
C语言实现strcpy函数和strlen函数
在操作字符串的函数大块中,其中有两个函数分别是strcpy和strlen函数,他们都是在#include<string.h>中包含。strcpy函数可以将一个字符数组的内容放到另一个字符数组中,实现字符串拷贝,而strlen函数是求一组字符串的长度的函数。他们都由C库提供,方便程序员使用。
88 0
|
编译器 C语言
C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现
C语言strlen,strcpy ,strcat, strcmp,strstr常用库函数的理解与模拟实现
132 0