以前都只是用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; }