如何将字符串转换为 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;
}
我想创建一个函数来获取这样的字符串 "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;
}