我正在尝试实现一个函数,该函数将为我得到的计算器分配解析数字。已经设置了一个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
答案 0 :(得分:-1)
我认为您正在寻找的是atoi
将char转换为int。
代替使用numbers[i] = input[i] - '0';
尝试:
numbers[i] = atoi(input[i]);
请确保添加#include <stdlib.h>
(如果未添加区域号)