以前都只是用strcmp函数来比较两个字符串是否相等而已,现在才知道strcmp函数还可以比较两个字符串的大小。。。如果相等返回0,小于的话返回小于0的数,大于的话返回大于0的数。。
比较是按字符的ascill码来比较,依次比较每个字符知道能分出大小。。
下面是hdoj1234的题目、、用strcmp函数来做的话一下子就能得出结果了。。
#include <stdio.h>
#include <string.h>
struct person
{
char no[16];
char arrive[9];
char depart[9];
}
a[1000];
int main()
{
int n,m;
int i,j,k;
char early[9];
char night[9];
person persone,personn;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&m);
for(j=0;j<m;j++)
{
scanf("%s%s%s",a[j].no,a[j].arrive,a[j].depart);
}
strcpy(early,"23:59:59");
strcpy(night,"00:00:00");
for(k=0;k<m;k++)
{
if(strcmp(a[k].arrive,early) < 0)
{
strcpy(early,a[k].arrive);
persone = a[k];
}
if(strcmp(a[k].depart,night) > 0)
{
strcpy(night,a[k].depart);
personn = a[k];
}
}
printf("%s %s/n",persone.no,personn.no);
}
return 0;
}