有没有办法在将字符串转换为整数后保持字符串中数字的第一个零?
Posted
技术标签:
【中文标题】有没有办法在将字符串转换为整数后保持字符串中数字的第一个零?【英文标题】:Is there a way to maintain the first zero of a number in string, after converting it to an integer? 【发布时间】:2016-09-19 10:58:37 【问题描述】:atoi()
函数在转换为整数时会忽略整数字符串的前导零。
例如,
atoi("01234");
给出结果1234
,而不是01234
。
有没有办法维护0
,在字符串到整数转换的结果中?
【问题讨论】:
那么先不要转成整数。你想达到什么目的? 据我所知计算机以二进制形式存储所有内容...那么 int 中的前导零是什么意思? 是什么让您认为前导零应该保留在数值中?顺便说一句,如果你有一个像01234
这样的整数文字,那么十进制表示的数值将为 668。
@Wiktor Stribiżew,这是因为我想拒绝任何包含字母的输入(默认情况下它是字符串)。所以,我想使用这个 stoi/atoi 将输入转换为整数。这样我就可以通过使用 strncmp() 将转换结果与原始输入(在字符串中)进行比较来检测输入是否包含字母。由于 atoi/stoi 不会转换任何非整数字符或者它会停止转换直到它看到第一个非整数字符的位置,如果比较结果不一样,那么我知道输入包含字母字符。跨度>
一个数字就是一个数字。数字不能有“前导零”。只有数字的字符串表示可以有一个“前导零”,并且您正在执行的操作从字面上移动 远离 字符串表示。目前还不清楚您要做什么,以及为什么选择atoi
(或stoi
?)来做这件事。
【参考方案1】:
根据定义,整数没有前导零。但是,如果必须,您可以包含一些代码,这些代码允许您确定字符串中有多少个前导零,然后将其存储到一个变量中,以后可以在其中使用它。
【讨论】:
以上是关于有没有办法在将字符串转换为整数后保持字符串中数字的第一个零?的主要内容,如果未能解决你的问题,请参考以下文章
如果表单字段包含空格,则Spring命令对象会抛出整数字段的NumberFormatException