如何有效地将数字字符串值分配给整数
How to effectively assign numerical string values to integers?
我有一个字符串,其中包含 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 小时格式):
- 使用 ":"
split
字符串 - 使用
strtol
将每个部分转换为整数。 -
last part+(60* middle part)+(60*60*firstpart)
会给你实际价值
相关文章:
- 将超出范围的整数分配给有符号字符类型
- 在C++中,如果我可以直接将整数分配给指针而不使用"new",为什么要使用"new"?
- 为对象分配整数.输出将是什么?
- 整数内存分配/释放
- 为什么可以将整数分配给字符串变量?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 将值分配给动态分配的整数
- 尝试使用 Array 类的模板构造整数数组时,错误:为什么数组类型"int [5]"不可分配,
- 如何将 32 位无符号整数分配给包含 32 位的位字段
- C ++枚举可以与整数进行比较,但不能从整数分配?
- 直接为浮点变量分配十六进制整数与通过指针转换分配之间的区别
- 为大无符号整数分配内存的有效方法
- 将空间分配给整数指针时出错
- 我们可以在整数类型的双指针中分配2D整数数组的地址吗?怎么可能
- 如何防止在分配整数数组时发生 SIGABRT
- C 中的内存模型:为什么在同一内存位置分配了结构中的两个整数
- C 中的恒定整数分配如何
- 在动态内存分配后将整数传递到构造函数中
- C++ - 泛型结构的成员在分配双精度时给出错误的值(但适用于整数)
- 使用new运算符可以将参数作为函数中数组的大小来分配整数数组