字符串怎么比较 c++

比如说要比较两个时间:08:05:35和20:56:35和12:35:45和21:40:42;用字符串来装的话;要怎么才能知道那个时间最早,哪个时间最晚?是怎么进行比较的... 比如说要比较两个时间:08:05:35和 20:56:35和12:35:45 和21:40:42
;用字符串来装的话;要怎么才能知道那个时间最早,哪个时间最晚?

是怎么进行比较的,如果不用字符串,还有其他更好的方法吗?
展开
 我来答
windblast
推荐于2018-03-15 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13621
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

如果时间固定是以 00:00:00 的字符串格式,可以直接用 strcmp 函数完成。

strcmp 函数的原型定义如下:

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

说明:

当s1<s2时,返回为负数;

当s1==s2时,返回值= 0;

当s1>s2时,返回正数。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

编写示例代码如下:

#include<stdio.h>

char * getOpr(char *str1, char *str2)
{
int r;
r = strcmp(str1,str2);
if (r==0) 
return "等于";
else if(r>0)
return "晚于";
else
return "早于"; 
}

int main()
{
char *str1, *str2;
char * s; 

str1 = "08:05:35";
str2 = "20:56:35";
s = getOpr(str1,str2);
printf("%s %s %s\n",str1,s,str2);

str1 = "21:40:42";
str2 = "12:35:45";
s = getOpr(str1,str2);
printf("%s %s %s\n",str1,s,str2);
}

运行截图:

芝士芯片
2014-08-02 · TA获得超过190个赞
知道小有建树答主
回答量:163
采纳率:0%
帮助的人:167万
展开全部

字符串比较就用strcmp,判断返回值就行了

#include <iostream>
using namespace std;
int main(void)
{
   const char* time1= "08:05:35";
   const char* time2 = "20:56:35";
   int result = strcmp(time1, time2);
   if (result >  0)
   {
      cout << "time1 > time2";
   }
   else if (result < 0)
   {
      cout << "time1 < time2";
   }
   else
   {
       cout << "time1 == time2";
   }

      return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2015-10-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
头文件<string.h>
函数 strcmp(a,b)
效果:判断字符串a,b是否相同
返回值等于0相同,不等于0就不同
还有,a="abcd", b="ab cd", c="abcd", d="1234"这样写也不行
要写成这样:
*a="abcd", *b="ab cd", *c="abcd", *d="1234"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kent_ghost
2018-03-15 · TA获得超过254个赞
知道小有建树答主
回答量:266
采纳率:98%
帮助的人:82.8万
展开全部
如果用字符串的话,只比较时间,那就肯定是从左面开始逐位比较了:数值越小越早、越大越晚;
string里面就有compare方法来确认两个字符串之间的前后问题;
如果直接获取的时候时间类型本身的,自然也可以直接比较的啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
仙来归Dm2fa
2014-08-02 · 超过64用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:162万
展开全部
跟比较英文是一样的只不过。中文1个子占用的是2个字节(在vc下)。(ps:不同的中文编码可能占用的字节数目不同但是vc下默认的是2个字节)。可以用strlen命令也可以用strcmp命令。。还有其他一些比较字符串命令看你喜欢了。。。
求采纳为满意回答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式