正在将char类型的数组转换为int变量

Converting array of type char into a int variable

本文关键字:转换 int 变量 数组 char 类型      更新时间:2023-10-16

在Codepad:上编译

#include <iostream>
using namespace std;
void main (void)
{
    char ch[2];
    int value;
    cout<<"Enter two integers between 0-9"<<endl;
    cin.getline(ch,2);
    //testing with char array
    //(...)
    //how could I do operations like '*', '+', '-', or '/' to the char arrays
}

提供:

第4行:错误:"::main"必须返回"int"由于-W致命错误,编译终止。

例如:

比方说ch[0]='5'ch[1]='3'

我需要做什么才能做ch[0]-ch[1]=2并存储到一个int值中

您根本不需要做任何特别的事情。int x = ch[0] - ch[1]的工作原理与您所期望的完全一样。

我想最初的练习会要求您获得两个不同的整数,每个整数可能超过1个字符。

但是,问题的解决方案是:ch[0]-ch[1]。

为什么它有效?

Ascii字符"0"是字符48。Ascii字符"9"是字符48+9

现在。。。。

'4'-'3'=(48+4(-(48+3(=4-3=1。

您发布的代码存在一些不同的问题。main需要具有int的返回类型。

int main() { /* .. */ }

cin.getline的调用将只填充您声明的数组中的一个字符,因为函数调用将null终止数组。你需要

char array[3];
cin.getline( array, 3 );

之后,如果array[0]包含"5",array[1]包含"3",则可以简单地进行

array[0] - array[1] 

得到整数结果2。

如果您需要处理[0..9]范围之外的数字,则需要将它们转换为数字表示。这可以使用std::stringtreamatoi来完成。