栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

字符之间、字符串之间比较的方法以及需要的问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符之间、字符串之间比较的方法以及需要的问题

  1. 字符之间的比较
    通过"=="进行直接判断
char s1 = 'c';//定义一个字符变量s1,内容是c
char s2 = 'd'; //定义一个字符变量s2,内容是d
if(s1==s2){//通过==判断是否相同
  //相等
}
  1. 字符串之间的比较(stcmp,strncmp)
    (1)通过调用C库函数strcmp,其声明原型如下:
int strcmp(const char *str1, const char *str2)
#include 
#include 
 
int main ()
{
   char str1[15];
   char str2[15];
   int ret;
 
 
   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");
 
   ret = strcmp(str1, str2);
 
   if(ret < 0)
   {
      printf("str1 小于 str2");
   }
   else if(ret > 0) 
   {
      printf("str1 大于 str2");
   }
   else 
   {
      printf("str1 等于 str2");
   }
   
   return(0);
}

编译运行结果:
str1 大于 str2
(2)部分字符串比较,通过调用C库函数strncmp,其声明如下:

int strncmp(const char *str1, const char *str2, size_t n)

n – 要比较的最大字符数。

#include 
#include 

int main ()
{
   char str1[15];
   char str2[15];
   int ret;


   strcpy(str1, "abcdef");
   strcpy(str2, "ABCDEF");

   ret = strncmp(str1, str2, 4);

   if(ret < 0)
   {
      printf("str1 小于 str2");
   }
   else if(ret > 0)
   {
      printf("str2 小于 str1");
   }
   else
   {
      printf("str1 等于 str2");
   }
   
   return(0);
}

str2 小于 str1
3. 需要注意的问题:
两个字符串之间进行比较时,不能直接使用"“进行比较。原因是因为,单纯的”"比较的是这两个字符串的首地址,是一个无法预知的地址,所以这样是无法保证两个字符串指向同一个地址,也比较两个字符串是否相等。而strcmp、strncmp原理就是从这两个字符串指针指向的地址开始对比,知道字符串最后一个字符为止,从而实现两个字符串大小判断比较。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/917328.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号