由于实际生活中,字符串形式的时间有可能有多种形式,比如月日年,或年月日,中间的分隔符也可能有所不同。所以C语言并没有提供此类的转换函数。
如果有需求,那么在确定字符串的组织格式前提下,可以自行书写一个转换函数。
有两种思路:
1 传入字符串,逐位解析每个字符,智能检查出数字之间的分隔符。然后根据分隔符,取出各个位上的数值,如年月日时分秒等。最终赋值到时间结构的对应成员变量上。
2 使用sscanf,根据约定好的格式,构建对应的格式字符串,将数值提取到对应的变量中。
对比二者,第一种方式代码量更大,但可以兼容更复杂的输入方式,使得输入更灵活,程序健壮性更好。第二种方式适用于严格约定输入格式的情况,以最少的代码量实现效果。