Answer.zhang 发表于 2014-10-23 14:56:07

一道关于C语言字符串分割比较的问题

一道比较老的笔试题,但是很值得琢磨,大家一起学习,各抒己见:
#define TIME_TAB_MAX 245
char g_time_tab = {
         "13:46",
         "08:23",
         "23:12",
         "05:59",
         ...
         "09:13",
         "12:00",
         "02:42",
         "22:29",
         ...
         ...
};

char g_sleep_time = {
      "21:30"
};


用C语言编写函数,从g_time_tab 中找出最接近g_sleep_time的时间,并且printf 出结果。

Answer.zhang 发表于 2014-10-23 14:57:00

{:9_231:}自己顶自己,长大有出息!

suxiang2014 发表于 2014-10-23 16:27:55

13:46 变成13.46
08:23 变成08.23
23:12 变成23.12
………………
21:30 变成 21.30

相减取绝对值找出最小的即可

suxiang2014 发表于 2014-10-23 16:32:31

把g_time_tab的“:”全部替换成“.”,调用strtod,将字符串转换成double,与21.30比较,取MIN.

suxiang2014 发表于 2014-10-23 18:17:38

忘记附上代码:
#include<stdlib.h>
#include<stdio.h>

#define TIME_TAB_MAX 8

int main() {
    char time_tab = {
      "13:46",
      "08:23",
      "23:12",
      "05:59",
      "09:13",
      "12:00",
      "02:42",
      "22:29"
    };
    char sleep_time = {
      "21:30"
    };
    int k;
    double time_value, sleep_value;
    //………………
    for(k = 0; k < TIME_TAB_MAX; k++) {
      time_tab = '.';
      time_value = strtod(time_tab, NULL);
    }
    //………………
    return 0;
}

Answer.zhang 发表于 2014-10-24 09:23:28

suxiang2014 发表于 2014-10-23 16:27
13:46 变成13.46
08:23 变成08.23
23:12 变成23.12


这个思路很靓啊,我试试先{:9_228:}
页: [1]
查看完整版本: 一道关于C语言字符串分割比较的问题