【问题标题】:Parse a string as a (long long) integer将字符串解析为(long long)整数
【发布时间】:2012-02-02 19:37:25
【问题描述】:

我正在编写一个代码,我需要将一个字符串解析为“long long int”

我以前在从 string 更改为 int 时使用 atoi,但我认为它仍然不起作用。我现在可以使用什么?

--谢谢

【问题讨论】:

  • 您正在寻找的短语是“将字符串解析为(长长)整数”。把“改变”留给政客:-)

标签: c long-long


【解决方案1】:

使用strtoll() (man page):

#include <stdlib.h>

long long int n = strtoll(s, NULL, 0);

(仅在 C99 和 C11 中可用,在 C89 中不可用。)第三个参数是转换的基数,0 表示“自动”,即根据通常情况选择十进制、八进制或十六进制约定(100100x10)。请注意这一点,以防您的字符串以 0 开头。

【讨论】:

  • 100% 正确,但有两个警告:首先,自动基数可能会令人困惑,因为 010 是 8(对某些人来说很明显,对另一些人来说很荒谬)。其次,它并没有真正进行错误检查。所以“7up”变成7,“hello”变成0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-21
  • 2017-05-29
  • 1970-01-01
  • 2020-12-02
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多