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

How to store characters in an integer array?

本文关键字:存储 字符 数组 整数      更新时间:2023-10-16

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

目前,这些数字正在打印到控制台,第一个 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

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

而不是使用numbers[i] = input[i] - '0';

试试这个:

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

确保有#include <stdlib.h>如果没有准备好

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