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

How to effectively assign numerical string values to integers?

本文关键字:分配 整数 字符串 数字字符 有效地 数字      更新时间:2023-10-16

我有一个字符串,其中包含 HH:MM:SS(':"' 是字符串格式的时间值。我必须将时间转换为秒,并将该值提供给整数变量。我不知道有任何功能可以帮助我做到这一点。

使用sscanf_s。例如:

void ScanTime(char* strTime)
{
    int hours;
    int minutes;
    int seconds;
    sscanf_s(strTime, "%d:%d:%d", &hours, &minutes, &seconds);
    printf("hours: %dnminutes:%dnseconds:%dn", hours, minutes, seconds);
}

int _tmain(int argc, _TCHAR* argv[])
{
    ScanTime("13:57:44");
    return 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 );}

使用 strtol。例如::

int a=(int)strtol(numeric_string.c_str(),(char **)NULL,10);

如果你的意图是简单地转换HH:MM:SS,你需要编写一个函数算法会像(假设 24 小时格式):

  1. 使用 ":" split字符串
  2. 使用 strtol 将每个部分转换为整数。
  3. last part+(60* middle part)+(60*60*firstpart)会给你实际价值