如何将字符存储在整数数组中?

时间:2019-04-22 20:04:25

标签: c++

我正在尝试实现一个函数,该函数将为我得到的计算器分配解析数字。已经设置了一个for循环,该循环将遍历输入数组中的每个索引,这是一个算术方程式,例如“ 1 + 2 + 3 + 4 + 5”。我创建了一个函数isDigit(),如果字符在0到9之间,它将返回true或false。这就是我解析数字的方式。我的问题是数字没有永久存储在我想返回的我的number []数组中。

当前,编号正在打印到控制台,第一个cout为“ 12345”,而第二个cout(当前已注释)用于检查我返回的数组存储的是一个不明确的十六进制数字。有人可以帮我返回数字中的“ 12345” []。

int * parseNumbers(char input[])
{
    static int numbers[10];

    for (int i = 0; i < strlen(input); i++)
    {
        if (isDigit(input[i]))
        {
            numbers[i] = input[i] - '0';
            cout << numbers[i];
        }
    }
    //cout << numbers << endl;
    return(numbers);
}

数字= 1,2,3,4,5

当前获取的号码= 002D26E8

1 个答案:

答案 0 :(得分:-1)

我认为您正在寻找的是atoi将char转换为int。

代替使用numbers[i] = input[i] - '0';

尝试:

numbers[i] = atoi(input[i]);

请确保添加#include <stdlib.h>(如果未添加区域号)

参考:http://www.cplusplus.com/reference/cstdlib/atoi/