涉及字符和 if 语句的快速帮助

Quick Assistance involving char's and if statements

本文关键字:帮助 语句 if 字符      更新时间:2023-10-16

对不起,如果这真的很微不足道,我只是对被困在第一步感到恶心,需要继续,我在其他任何地方都没有帮助。我一辈子都无法得到这个功能来配合我。以下是来源:

 #include <iostream>
 using namespace std;
 void ReadDials(){
 };
void ToDigit(char *x){
    if (*x = 'a'){*x = '54';}
    else if (*x = 'A'){*x = 2;}
    else if (*x = 'b'){*x = 3;}
    else(*x = 4);
};
int main()
{
    char one;
    char two;
    char three;
    cin >> one; 
    ToDigit(&one);
    cout << "one is: " << one <<  endl;
    system("PAUSE");
}

我尝试过:在实际数字 2 和 2 的 ascii 指针之间交替,我相信是我用==尝试的"32",我已经做了我能想到的一切,我知道我想多了。关键是让该函数将用户输入转换为电话拨号器的号码。

问题包括数字与 if 语句不同步以及看到":D"控制台上的脸。这让我很恼火。

如果我需要让自己更清楚,我也会非常高兴。

提前感谢任何帮助。

if (*x = 'a')中,=是一个赋值。您希望==进行比较。 此外,"54"不是字符值。

void ToDigit(char *x){
    if (*x == 'a') { *x = '54'; }  /* what is this supposed to do? */
    else if (*x == 'A') {*x = 2; }
    else if (*x == 'b') {*x = 3; }
    else { *x = 4 };
};

看起来您正在尝试使用x作为输入和输出。 让我们退后一步。 让我们改为编写一个函数,该函数采用单个char返回一个整数。 这将是获取char并从中获取数字的规范方式。

int ToDigit(char x){
    if (x == 'a') { return 54; }
    if (x == 'A') { return 2; }
    if (x == 'b') { return 3; }
      return 4 ;
};

若要使用这种形式的函数,在这种情况下,应将返回值分配给类型为 int 的变量。

char my_input;
int mapped_number;
std::cin >> my_input;
mapped_number = ToDigit(my_input);
std::cout << my_input << " maps to " << mapped_number << ".n";