gpt4 book ai didi

C将Char数组(字符串)转换为int数组

转载 作者:行者123 更新时间:2023-12-04 11:32:14 24 4
gpt4 key购买 nike

我已经为此搜索了几个小时,但似乎找不到答案,尤其是在 C 语言方面。在java中,转换等很简单,但我似乎无法在C中牢牢掌握它。

我的问题是:我必须从用户那里获得输入,他们可以输入 0 到 31 之间的任何数字。他们最多可以输入 31 个数字。他们可以重复。
输入可能如下所示:3 15 32。我知道如何使用 fgets() 函数获取此输入并将其存储为字符串。我将输入存储在数组 s[];

现在,我被卡住的部分,如何将其转换为 int 数组,以便 int int[0]=3、i[1]=15、i[2]=32 等?

我尝试使用 sscanf(s, "%d", int),但它只能从输入中获取第一个数字,将其存储在 int[0] 中,然后不填充其余部分。是否有某种功能可以让这一切变得简单快捷?

先感谢您。

最佳答案

您可以使用库,也可以编写辅助函数。辅助函数看起来像这样(伪代码):

int output = 0;
for (int i = 0; i < string.length; i++) {
output = output * 10;
output = output + parse(string[i]) //parse first character into a single digit
}

例如,如果您有 253,它将显示为 2。然后它将乘以 10 (20) 并加上 5 (25)。然后它将其乘以 10 (250) 并加上 3,这将是预期的输出。

请注意,您需要找到一种方法将字符串的单个字符解析为单个数字整数 - 使用 switch() 语句之类的东西应该很容易。

编辑:
如果您正在寻找库函数,请查看以下问题:

What is the difference between sscanf or atoi to convert a string to an integer?

关于C将Char数组(字符串)转换为int数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36758491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com