字符串比较函数

在C/C++中的字符串比较函数,基本上可以分为两类:

1、大小写敏感的字符串比较函数;

2、忽略大小写的字符串比较函数;


1、大小写敏感的字符串比较函数:

       int strcmp( const char *s1, const char *s2 );

       int strncmp( const char *s1, const char *s2 );

      返回值: s1 > s2       return  > 0;

                     s1 == s2     return  0;

                     s1 < s2       return < 0;

      英文解释: strcmp() and strncmp() return an integer less than, equal to, or greater than zero if s1 is found to be less than, or match, or be greater than s2;

2、忽略大小写的字符串比较函数( compare two string ignoring case):

         int strcasecmp( const char *s1, const char *s2 );

         int strncasecmp( const char *s1, const char *s2 );

       返回值: s1 > s2    return > 0;

                      s1 == s2  return 0;

                      s1 < s2    return < 0;

       英文解释:strcasecmp() and strncasecmp() return an integer less than , equal to , or greater than zero if s1 is found to be less than, to match, or to be greater than s2;


发布了1 篇原创文章 · 获赞 4 · 访问量 925
展开阅读全文

关于比较字符串函数strcmp()

04-05

书中介绍 s1与s2的前i的字符一致,但是s1的第i+1个字符小于s2的第i+1个字符。函数会认为s1小于s2。例如“abc”小于“bcd”,“abd”小于“abe”。 能否理解为两个字符串的对应元素逐个比较,谁首先出现ASC码值小于对方的元素。就说:这个元素小于另一个元素? 例如:"abcdfeg"小于“z”“abcd”小于“abcccccccc” 以及“24 XXXXXXXXXX”小于“5”? 如果我理解的正确,那么有如下代码片段: 程序接收用户输入的日期和提醒,按时间顺序存储这些日期和对应当日的提醒,并输出。 for(i=0;i<num_remind;i++)num_remind是计数器,记录目前输入了几条提醒 if(strcmp(day_str,reminders[i]) break; for(j=num_remind;j>i;j--) strcpy(reminders[j],reminders[j-1]);//把当前i标记的日期后面的所有字符串各自下移一行 strcpy(reminders[i]),day_str); strcat(reminders[i],msg_str);//把此日期以及相应的提醒存入reminders[i]中 num_remind++; 请问下面这条语句的比较方法对吗? if(strcmp(day_str,reminders[i]) 假设循环已经把第一条字符串“24 XXXXXXXXXX”存进了reminders数组中、 接下来的这条语句会把day_str(以字符串形式存储的下一个日期,我们假设是5) 拿来和reminders[i](也就是“24 XXXXXXXXXX”)进行比较。得出的结果应该是 “5”>“24 XXXXXXXXXX”。这样程序就不会把5号以及5号的提醒事项塞入数组了 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览