我有一个字符串,其中包含HH中的时间值:MM:SS(':'是字符串的一部分。)format.I必须将时间转换为秒并将该值赋给整数变量.I我不知道任何可以帮助我做的功能。
答案 0 :(得分:1)
使用sscanf_s。 例如:
void ScanTime(char* strTime)
{
int hours;
int minutes;
int seconds;
sscanf_s(strTime, "%d:%d:%d", &hours, &minutes, &seconds);
printf("hours: %d\nminutes:%d\nseconds:%d\n", hours, minutes, seconds);
}
int _tmain(int argc, _TCHAR* argv[])
{
ScanTime("13:57:44");
return 0;
}
答案 1 :(得分:0)
使用strtol。 例如::
int a=(int)strtol(numeric_string.c_str(),(char **)NULL,10);
如果你的意图只是转换HH:MM:SS,你需要编写一个函数 算法就像(假设24Hr格式):
split
字符串使用“:”strtol
将每个部分转换为整数。last part+(60* middle part)+(60*60*firstpart)
会给你
实际价值答案 2 :(得分:0)
由于这不是标准的C ++函数,因此它在很大程度上取决于您使用的框架或库。
这是如何在Borland C ++ Builder中完成的:
String Time;
Time = "12:34:56";
TDateTime DT;
try{
DT = StrToTime(Time);
}catch(...){String M = "Error converting time string: "+Time; Application->MessageBox(M.c_str(),"ERROR",MB_OK );}