Ich habe ein Problem mit diesem Problem. Ich habe diese Zuordnung, die ich Zeichen als Zahlenwert anzeigen muss. Genau wie Hotline-Telefonnummer, z. B. Anruf 1-800-the-best
. Es wird der ganze Buchstabe als Nummer angezeigt.Anzeige Char, die in Char-Array als int Wert
abc = 2, def = 3, ghi = 4, jkl = 5, mno = 6, pqrs = 7, tuv = 8, wxyz = 9.
Ich versuche atoi
verwenden, aber das wird sich das numerische Zeichen ignorieren und nur alphabetische Zeichen umwandeln.
Im mit Switch-Anweisung. Es gibt keinen Kompilierungsfehler, aber irgendwie ist mein Ausgabeergebnis komisch. hier ist mein Code
#include<stdio.h>
#include<string.h>
#define num 11
int main(void)
{
char ch;
char number[11];
int i = 0;
int j = 0;
printf("please enter your phone number: \n");
for(i = 0; i < num; i++)
{
scanf_s("%c", &ch);
switch(ch)
{
case '0':
number[i] = 0;
break;
case '1':
number[i] = 1;
break;
case 'a': case 'b': case 'c':
number[i] = 2;
break;
case 'd': case 'e': case 'f':
number[i] = 3;
break;
case 'g': case 'h': case 'i':
number[i] = 4;
break;
case 'j': case 'k': case 'l':
number[i] = 5;
break;
case 'm': case 'n': case 'o':
number[i] = 6;
break;
case 'p': case 'q': case 'r': case 's':
number[i] = 7;
break;
case 't': case 'u': case 'v':
number[i] = 8;
break;
case 'w': case 'x': case 'y': case 'z':
number[i] = 9;
break;
}
}
printf("the phone number you enter is: ");
for(j = 0; j < num; j++)
{
printf("%d", number[j]);
}
return 0;
}
Wenn ich jedes Zeichen als Zahlen zB eingeben: 1 2 3 4 5 6
das Ausgangsergebnis ist
1-52-52-52-52-52-52-52-52-52 -52-52.
Wenn ich jedes Zeichen als Alphabet beispiels eingeben: a b c d e f
das Ausgangsergebnis ist
2-522-522-523-523-523.
Ich frage mich, was ich falsch gemacht habe.
Willkommen bei SO. Bitte lesen [fragen], und zeigen Sie Ihren Code. – OldProgrammer
'int dialnum [128] = {0, 0, ... 2, 2, 2, 3, 3, 3, ...};' Die erste '2' steht auf' Dialnum ['A'] 'und Das Array kann auch numerische Werte, Kleinbuchstaben und Sonderzeichen verarbeiten. –
danke. Lemme versuche diese Methode. –