parstime.c

来自「国外网站上的一些精典的C程序」· C语言 代码 · 共 64 行

C
64
字号
/***  PARSTIME.C - A simple parser to extract times from strings.****  Public domain by Bob Stout*/#include <stdio.h>#include <stdlib.h>#include "datetime.h"/***  parse_time() - Parse a time string into its components****  Arguments: 1 - String to parse**             2 - Address of hours storage**             3 - Address of minutes storage**             4 - Address of seconds storage****  Returns: 0 For success, non-zero for range errors*/Boolean_T parse_time(const char *str,                     unsigned   *hours,                     unsigned   *mins,                     unsigned   *secs){      unsigned hh, mm, ss;                /* Local data                 */      if (3 != sscanf((char *)str, "%u:%u:%u", &hh, &mm, &ss))            return Error_;      if (hh > 23 || mm > 59 || ss > 59)            return Error_;      *hours = hh;      *mins  = mm;      *secs  = ss;      return Success_;}#ifdef TESTmain(int argc, char *argv[]){      if (2 > argc)      {            puts("Usage: PARSTIME time_string [...time_string]");            return EXIT_FAILURE;      }      while (--argc)      {            char *str;            unsigned hh, mm, ss;            Boolean_T retval;            retval = parse_time(str = *++argv, &hh, &mm, &ss);            printf("parse_time(\"%s\") returned %d\n", str, retval);            if (Success_ == retval)                  printf("  time = %02u:%02u:%02u\n\n", hh, mm, ss);      }      return EXIT_SUCCESS;}#endif /* TEST */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?