whyyouhitme_
2018-04-05 10:13
采纳率: 25%
浏览 3.3k
已采纳

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

书中介绍
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 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号的提醒事项塞入数组了

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

6条回答 默认 最新

相关推荐 更多相似问题