在 C 中使用 atoi() 函数
我想将字符串转换为整数。但是我的字符串是 234,23,34,45。如果我使用 atoi,它只给我 234。我想转换字符串中的所有整数。我如何使用 atoi 来解决这个问题或者什么可以我用而不是atoi?
I wanna convert string to integer.But my string is 234,23,34,45.If i use atoi, it gives me only 234.I wanna convert all integers in my string.How can i use atoi to solve this or what can i use instead of atoi??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
一种选择是使用 strtok() 将字符串分成几部分,然后对每个使用 atoi() 。
编辑:(dmckee 在评论中推荐)
One option would be to use strtok() to break your string into pieces, then use atoi() on each.
Edit: (Recommended by dmckee in the comments)
因为字符串只不过是一个 char * 在每次调用 atoi 到 ',' + 1 的下一个实例之后前进一个临时字符 *
since a string is nothing but a char * advance a temp char * after every call to atoi to the next instance of a ',' + 1
假设您想要 {234,23,34,45}。
使用 strchr
或者可能更容易阅读:
使用 strtok
Assuming you want {234,23,34,45}.
Using strchr
or perhaps easier to read:
Using strtok
您可以解析字符串并将其拆分为“,”,然后将范围传递给 atoi()。
You could parse the string and split it on "," then pass the range to atoi().
为什么不先规范化字符串呢?
这是一个(未经测试的)函数来做到这一点。
然后而不是
这样做
Why don't you normalize the string first?
Here's an (untested) function to do that.
then instead of
do this
然后调用 my_atoi(const char *) 函数:
then call
my_atoi(const char *)
function: