如何有效地将数字字符串值分配给整数?

时间:2014-01-09 08:30:13

标签: c++

我有一个字符串,其中包含HH中的时间值:MM:SS(':'是字符串的一部分。)format.I必须将时间转换为秒并将该值赋给整数变量.I我不知道任何可以帮助我做的功能。

3 个答案:

答案 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格式):

  1. split字符串使用“:”
  2. 使用strtol将每个部分转换为整数。
  3. 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 );}