问题标签 [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.
c - strtol 等人的规范中的混淆语言
规范在strtol
概念上将输入字符串分为“初始空白”、“主题序列”和“最终字符串”,并将“主题序列”定义为:
输入字符串的最长初始子序列,从第一个具有预期形式的非空白字符开始。如果输入字符串为空或完全由空白字符组成,或者如果第一个非空白字符不是符号或允许的字母或数字,则主题序列不应包含字符。
有一次我认为“最长的初始子序列”业务类似于工作方式scanf
,其中"0x@"
将扫描为"0x"
,一个失败的匹配,然后"@"
是下一个未读字符。但是,经过一些讨论,我主要相信strtol
处理的是预期形式的最长初始子序列,而不是最长的初始字符串,它是预期形式的某些可能字符串的初始子序列。
仍然让我感到困惑的是规范中的这种语言:
如果主题序列为空或没有预期的形式,则不进行转换;str 的值存储在 endptr 指向的对象中,前提是 endptr 不是空指针。
如果我们接受似乎是“主题序列”的正确定义,则不存在没有预期形式的非空主题序列之类的东西,相反(为了避免冗余和混淆)文本应该只是阅读:
如果主题序列为空,则不进行转换;str 的值存储在 endptr 指向的对象中,前提是 endptr 不是空指针。
谁能为我澄清这些问题?也许指向过去讨论或任何相关缺陷报告的链接会很有用。
c - strtol 未检测到整数溢出
我正在尝试使用 strtol 使用以下代码将字符数组转换为整数:
其中温度 = 4000000010
但是 strtol 没有检测到溢出,它没有将 foo 设置为 LONG_MAX 并且 errno 没有从它的初始值 0 改变。
而是将 bob 更改为溢出的值 -294967286。
所以我想知道我在这里错过了什么?
c - strtol 未按预期运行,c
当上面的代码输入数组 {'1','2','3','4','5','6','7','8','9','0 ','1'}
我得到以下输出:
发生了什么事... strtol 似乎遭受溢出但没有设置 errno
c# - 如何在 C# 中手动解析带有可选字段的自定义 DateTime 格式
假设我有一些内部几乎类似于 ISO 的格式的以下日期/时间:
"2011-11-07T11:17"
"--T11:17"
(上午 11:17,没有日期,只有时间)"-11-07"
(11月7日,没有年份,没有时间)
分隔符是强制性的,让我知道是否存在数据。数据将被设置为如下结构:
“最简单”的方法是逐个字符循环,并提取数据(如果存在)。
但我有一个令人讨厌的印象,必须有某种 API 来提取,例如,一个整数并返回第一个非整数字符的索引(类似于 C 的strtol
)。
C# 中是否有类似strtol
的函数,或者更高级的函数来提取类型化数据,而不是逐个字符地解析字符串?
c - 错误 C3861:“strtoll”:未找到标识符
我在这里面临的主要问题是在 VC 2010 ( )中strtoll()
被标记为错误。error C3861: 'strtoll': identifier not found
如果我用 替换它会做同样的事情strtol()
吗?
c++ - 为什么 strtol 和 strtok 的这种组合不起作用?
谁能告诉我这段代码有什么问题?
我在 Solaris Unix 上运行。它给了我一个分段错误。
故障在strtol()
.
iphone - 将十六进制字符串转换为整数时出现奇怪的结果
我编写了以下方法来将 Hex String 转换为 int:
大多数时候它工作正常,但有时它真的会遇到这样的大麻烦:
谁能告诉我我的代码有什么问题?
c - 如何将 strtol 与 char 而不是字符串一起使用来比较 if 语句中的 char
我花了很多时间阅读 c 教程并让这段代码编译/正常工作(因为我对 c 很烂),我想知道使用 strtol 的更清洁/更整洁的方式是什么,而不是getchar(c)
然后更改c
为数组chstr[]
然后使用strtol
on chstr
。
感谢 Lachlan ps 感谢那些帮助我进行 isdigit 检查的人
c++ - Strtol 第二个参数
第二个论点如何strtol
工作?
这是我尝试过的:
其中ptr
是 achar *
并且str
是字符串。现在,如果我传入str
as'34EF'
和 print *ptr
,它会正确地给我E
,并且*(ptr+1)
给我F
,但是如果我 print ptr
,它给我EF!
不应该打印ptr
只是导致像十六进制地址或其他东西的垃圾值吗?
c - C 中 strtol() 的奇怪崩溃
我正在使用 stdlib 库中的 strtol() 进行一些证明,因为我有一个总是崩溃的程序,我发现这非常有效:
但是当我添加一个新声明时,无论它在哪里像这样崩溃
只需添加最后的“int k;” 程序在执行 strtol() 时崩溃无法理解为什么。我在 Code::Blocks 上这样做