问题标签 [strtol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
267 浏览

c - strtol 等人的规范中的混淆语言

规范在strtol概念上将输入字符串分为“初始空白”、“主题序列”和“最终字符串”,并将“主题序列”定义为:

输入字符串的最长初始子序列,从第一个具有预期形式的非空白字符开始。如果输入字符串为空或完全由空白字符组成,或者如果第一个非空白字符不是符号或允许的字母或数字,则主题序列不应包含字符。

有一次我认为“最长的初始子序列”业务类似于工作方式scanf,其中"0x@"将扫描为"0x",一个失败的匹配,然后"@"是下一个未读字符。但是,经过一些讨论,我主要相信strtol处理的是预期形式的最长初始子序列,而不是最长的初始字符串,它是预期形式的某些可能字符串的初始子序列。

仍然让我感到困惑的是规范中的这种语言:

如果主题序列为空或没有预期的形式,则不进行转换;str 的值存储在 endptr 指向的对象中,前提是 endptr 不是空指针。

如果我们接受似乎是“主题序列”的正确定义,则不存在没有预期形式的非空主题序列之类的东西,相反(为了避免冗余和混淆)文本应该只是阅读:

如果主题序列为空,则不进行转换;str 的值存储在 endptr 指向的对象中,前提是 endptr 不是空指针。

谁能为我澄清这些问题?也许指向过去讨论或任何相关缺陷报告的链接会很有用。

0 投票
3 回答
1052 浏览

c - strtol 未检测到整数溢出

我正在尝试使用 strtol 使用以下代码将字符数组转换为整数:

其中温度 = 4000000010

但是 strtol 没有检测到溢出,它没有将 foo 设置为 LONG_MAX 并且 errno 没有从它的初始值 0 改变。

而是将 bob 更改为溢出的值 -294967286。

所以我想知道我在这里错过了什么?

0 投票
1 回答
1282 浏览

c - strtol 未按预期运行,c

当上面的代码输入数组 {'1','2','3','4','5','6','7','8','9','0 ','1'}

我得到以下输出:

发生了什么事... strtol 似乎遭受溢出但没有设置 errno

0 投票
4 回答
1245 浏览

c# - 如何在 C# 中手动解析带有可选字段的自定义 DateTime 格式

假设我有一些内部几乎类似于 ISO 的格式的以下日期/时间:

  • "2011-11-07T11:17"
  • "--T11:17"(上午 11:17,没有日期,只有时间)
  • "-11-07"(11月7日,没有年份,没有时间)

分隔符是强制性的,让我知道是否存在数据。数据将被设置为如下结构:

“最简单”的方法是逐个字符循环,并提取数据(如果存在)。

但我有一个令人讨厌的印象,必须有某种 API 来提取,例如,一个整数并返回第一个非整数字符的索引(类似于 C 的strtol)。

C# 中是否有类似strtol的函数,或者更高级的函数来提取类型化数据,而不是逐个字符地解析字符串?

0 投票
4 回答
2162 浏览

c - 错误 C3861:“strtoll”:未找到标识符

我在这里面临的主要问题是在 VC 2010 ( )中strtoll()被标记为错误。error C3861: 'strtoll': identifier not found如果我用 替换它会做同样的事情strtol()吗?

0 投票
3 回答
711 浏览

c++ - 为什么 strtol 和 strtok 的这种组合不起作用?

谁能告诉我这段代码有什么问题?

我在 Solaris Unix 上运行。它给了我一个分段错误。

故障在strtol().

0 投票
1 回答
745 浏览

iphone - 将十六进制字符串转换为整数时出现奇怪的结果

我编写了以下方法来将 Hex String 转换为 int:

大多数时候它工作正常,但有时它真的会遇到这样的大麻烦:

谁能告诉我我的代码有什么问题?

0 投票
2 回答
2237 浏览

c - 如何将 strtol 与 char 而不是字符串一起使用来比较 if 语句中的 char

我花了很多时间阅读 c 教程并让这段代码编译/正常工作(因为我对 c 很烂),我想知道使用 strtol 的更清洁/更整洁的方式是什么,而不是getchar(c)然后更改c为数组chstr[]然后使用strtolon chstr

感谢 Lachlan ps 感谢那些帮助我进行 isdigit 检查的人

0 投票
1 回答
932 浏览

c++ - Strtol 第二个参数

第二个论点如何strtol工作?

这是我尝试过的:

其中ptr是 achar *并且str是字符串。现在,如果我传入stras'34EF'和 print *ptr,它会正确地给我E,并且*(ptr+1)给我F,但是如果我 print ptr,它给我EF!不应该打印ptr只是导致像十六进制地址或其他东西的垃圾值吗?

0 投票
1 回答
1031 浏览

c - C 中 strtol() 的奇怪崩溃

我正在使用 stdlib 库中的 strtol() 进行一些证明,因为我有一个总是崩溃的程序,我发现这非常有效:

但是当我添加一个新声明时,无论它在哪里像这样崩溃

只需添加最后的“int k;” 程序在执行 strtol() 时崩溃无法理解为什么。我在 Code::Blocks 上这样做