我有一个包含数据的字符串,"2013-04-20T13:50:47.390"
就像这样。
我在考虑使用字符串值的方法。我想使用sscanf
,因为它似乎是一种有效的方法,但我不知道我需要在sscanf
中添加的命令,因此它知道分隔符如&# 39; - ',' T',':','。'。有什么建议吗?
顺便说一句,是否有任何有效的方式来剪切字符串,我想在T
之后的另一个字符串中保存该部分。
感谢您的时间。
答案 0 :(得分:3)
你可以这样做:
int year, month, day, hour, min, sec, msec;
int ret;
ret = sscanf(str, "%4d-%2d-%2dT%2d:%2d:%2d.%d",
&year, &month, &day, &hour, &min, &sec, &msec);
if (ret != 7) {
printf("Error while parsing time");
}
编辑:正如@DavidBowling在评论中所提到的,格式说明符2
中的%2d
告诉sscanf读取关联整数的2
位数
答案 1 :(得分:0)
谢谢,我发现了怎么做。我只需要将分离器添加到sscanf:
sscanf(stringTest,"%d-%d-%dT%d:%d:%d.%d", &year,&month,&day,&hour,&min,&sec,&ms);