如何将字符串转换为 long int?

How to do a string to long int?

我想创建一个函数来获取这样的字符串 "2014-02-13T06:20:00"

并转换为 long long int,例如 20140213062000

有人知道如何做到这一点吗?

这是一个算法,您只需编写代码:

  • 定义一个long long变量n并初始化为0.
  • 对于字符串中的每个字符 c
    • 如果c是一个数字,即大于或等于'0'且小于或等于'9'
    • n乘以10加上c所表示的值,将结果存入n.
    • 其他:
    • 忽略非数字字符
  • n 应具有预期值。

这将转换正值。如果字符串的初始 - 表示负数,您将对其进行测试并在末尾取反该数字。另请注意,使用此方法溢出 long long int 的范围具有未定义的行为。

您在评论中的尝试需要一些改进:

long long string_To_long(const char sl[]) {
    long long int n = 0;
    for (int i = 0; sl[i] != '[=10=]'; i++) {
        char c = sl[i];
        if (c >= '0' && c <= '9')
            n = n * 10 + (c - '0');
    }
    return n;
}