如何将char * string =“2001-02-03”转换为整数格式?

时间:2013-04-13 13:05:19

标签: c++ integer type-conversion

我有这些字符串:

const char * date = "2001-02-03";
const char * id = "987654/3210";

我需要非常快速地转换为整数或长整数(对于id)。我需要翻译进行比较(对于数字strcmp()来说很慢)。我只有这个库:

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <iostream>

实施例: const char * date =“2001-02-03”; - &GT; int int_date = 20010203; const char * id =“987654/3210”; - &GT; long long_id = 9876543210;

怎么办?

1 个答案:

答案 0 :(得分:0)

如果您有字符串,只需strcmp比将其转换(解析)为另一种格式更快,然后进行比较。

但解析它的简单方法是:

const char * date = "2001-02-03";
int y, m, d;
int result = sscanf(date, "%d-%d-%d", &y, &m, &d);

if (result == 3)
{
    // use them
}

(我建议我的代码作为样本)