问题标签 [atoi]

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 投票
2 回答
581 浏览

java - 使用 byte[] 的 Java 快速 atoi

我正在开发一个应该读取和处理平面文件的应用程序。这些文件并不总是对记录中的每个字段使用一致的编码,因此决定我们应该读/写字节并避免将它们转换为字符串的必要解码/编码。

但是,很多这些字段都是简单的整数,我需要验证它们(测试它们是否真的是整数并且在一定范围内)。我需要一个接收 byte[] 并将其转换为 int 的函数。我假设所有数字都是纯ASCII。

我知道我可以通过首先将 byte[] 转换为 CharBuffer,解码为 ISO-8859-1 或 UTF-8,然后调用 Integer.parseInt() 来做到这一点,但这似乎有很多开销,而且性能很重要。

所以,基本上我需要的是 atoi() 的 Java 等价物。我更喜欢 API 函数(包括 3rd 方 API)。此外,该函数应该以某种方式报告错误。

作为旁注,我在表示日期/时间的字段上遇到了同样的问题(虽然这些更罕见)。如果有人能提到一些用于 Java 的快速类 C 库,那就太好了。

0 投票
1 回答
1039 浏览

websocket - 将 io 字符串转为 int Atoi 无效参数

我正在尝试从 Go 语言的 WebSockets 连接中解析一个字符串。我正在实现连接的两端,因此数据格式的规范仅取决于我。

由于这是一个简单的应用程序(通常用于学习目的),我想出了ActionId Data,其中 ActionId 是uint8. BackendHandler是 WebSocket Connection 中每个请求的处理程序。

平台信息

代码:

所有输出:(注意我用于检查的 Println)

我找不到启动此错误的代码,只有定义错误代码的位置(取决于平台)。我很欣赏改进我的代码的一般想法,但主要是我只想解决转换问题。

这与我的缓冲区-> 字符串转换和切片操作(我不想使用 SplitAfter 方法)有关吗?

编辑

此代码重现了该问题:

该文件input必须包含0 2\r\n(取决于文件结尾,它在其他操作系统上可能看起来不同)。可以通过为 reslice 添加结束索引来修复此代码,这样:

0 投票
3 回答
395 浏览

c - 在C中将字符作为整数添加到数组中

我正在尝试将整数添加到 C 中的数组中。但是我正在从文件中读取字符,因此我必须先将它们转换为整数。出于某种原因,我的程序在停止工作之前甚至无法启动。我认为这是一个转换问题,但我是 C 新手。

新的编辑代码:

测试.txt

有人指出我正确的方向会很棒。

0 投票
1 回答
159 浏览

c - 数组值发生变化

所以我有两个问题:

我正在使用 netbeans 对此进行编码。

首先是我在 c.sArr 中设置的数组值从 7 变为某个随机数,我不知道为什么。

第二个是当我尝试在 netbeans 中运行调试时,代码给了我一个段错误,而当我正常运行它时却没有。它在 atoi 函数处给出了段错误。

这里发生了什么?

另一个文件是:

匆忙编码,请原谅奇怪的调试语句。

谢谢

0 投票
3 回答
1258 浏览

c - 如何使用 atoi() 将 int 类型转换为 Int32

我有一段 C 代码:

它抛出一个错误:

我不知道为什么?你可以帮帮我吗?

可能是#includes 的问题:

  • sys/socket.h
  • netinet/in.h
  • arpa/inet.h
  • stdio.h
  • stdlib.h
  • string.h
  • strings.h
0 投票
2 回答
1598 浏览

c - C:解析由字符分隔的数字字符数组并将数字转换为整数

我对序列比对程序(这是一个生物信息学项目)创建的一些字符串有疑问。我正在尝试向解析对齐文件的现有 C 程序添加附加功能,但在解析程序创建的“不匹配”字符串时遇到了一些问题。添加一些上下文,这里是一个对齐字符串的例子:

example = "28G11AC10T32";

下面是如何解释字符串:前 28 个碱基与序列匹配,然后是“G”错配(第 29 个碱基),接下来的 11 个碱基匹配(第 40 个碱基),一个“A”错配(共 41 个碱基) )、“C”不匹配(总共第 42 个碱基)等等……

我需要找出不匹配的基本位置(即,字符串有一个字符而不是数字)并将其存储到一个 int 数组中,以便我可以在以后的子程序中查找它。

所以这就是我的问题发挥作用的地方。我已经编写了一个我“认为”可以解析出来的子例程,但是我从输出中得到了一个非常奇怪的工件。注意:请原谅我糟糕而混乱的代码!我无论如何都不是 C 程序员,而且我的培训也不是计算机科学!

所以,我的问题是,当我到达上面评论过的部分时(“这是我得到错误的地方”),我的“pre”字符串包含数字乘以 10。例如,使用上面列出的示例字符串,循环第一次到达该区域时,我希望 pre 包含“28”,但它包含“280”!当我使用 atoi 转换字符串时,它比我预期的要高十倍。
是否有一些我遗漏的东西或 C 中的一些我不知道的字符数组约定?预先感谢您的回复。

0 投票
1 回答
12315 浏览

arrays - 将数字从标准输入获取到 C 中的数组

我正在尝试将数字从标准输入获取到数组。stdin 中的第一个数字是数组中元素的数量(数字可以是任何 int)。我这样做是为了得到第一个数字:

然后创建一个大小为 n 的数组。现在我需要完成所有其余的

并将数字添加到数组中。数字由 \t 分隔,有时也由 \n 分隔。我该怎么做?我已经思考了一个小时,但仍然没有工作代码。有什么帮助吗?谢谢!

0 投票
2 回答
151 浏览

c - 无法用 C 中的指针计算十六进制转换

所以我对此感到非常沮丧,并且觉得弄清楚我做错了什么的唯一方法就是问你们这些好人。我正在尝试将一串字符(包含数值)转换为十六进制。这是我的代码(请注意,我还没有将 10-15 的开关设置为字母;我只是想确保在运行此代码时返回整数值……不走运):

例如,输入 300 返回 ,@

我也试过:

它为 300 返回一个十六进制值 3fa844e0 ,这显然也是错误的。任何帮助表示赞赏,我也需要对八进制执行此操作,因此我必须弄清楚这个概念并看看我做错了什么。

0 投票
4 回答
11438 浏览

c - C 字符值算术

我一直在阅读“The C Programming Language”这本书学习 C,我偶然发现了s[i] - '0' 他们所说的算术,它给出了存储在 s[i] 中的字符的数值。我不是很明白,它怎么能通过减法给出值呢?注意 这在 atoi 函数中使用,该函数将一串数字转换为其等效的数字。谢谢

0 投票
4 回答
4119 浏览

python - 在 Python 中连接两个数字的最快方法

假设你在 Python 中有两个字符串(只有数字),比如字符串 a 和字符串 b。产生数字 c = ab(因此是整数部分和 b 小数部分)的最快方法是什么?