Char oder Zahl?

Hi,

ich habe eine Problem.
Ich solle eine Eingabe machen und nachher kontrollieren ob diese ein Char oder eine Zahl ist.Da ich aber am anfang die cin Variable definieren muss klappt das irgendwie nicht...

kann mir da jemand helfen?

Sigmund
 
Hm? Nimm einen char. Wenn eine '0', eine '1', ... oder eine '9' eingegeben wurde, handelt es sich um eine Zahl bzw. eine Ziffer -- ansonsten um einen Buchstaben oder ein Steuerzeichen. Die Ziffern habe ASCII-Werte (das ist der Zeichencode) von 48 bis 57 (dezimal).

Hilft dir das weiter?
 
Jetzt steh ich vor noch einem Problem ... ich soll also ein Wort eingeben

z.B. Bahnhof

und ich habe das jetzt so gemacht , dass ich jeden Buchstaben einzeln eingebe , sodass ich jeden Char seperat kompelieren ( in eine Zahl (wie halt im Ascii code nur das ich meinen eingenen schreiben soll ;))) kann.
Bei diesem Eingabealgorithmus muss ich aber vorher definieren , wie lang bzw. kurz dieses Wort sein muss.

....

cout<<endl<<"Eingabe eines Wortes aus dem Alphabet \nM={A,B,C,D}"<<endl;
cout<<endl<<"Eingabe: "<<endl;

a[0]=0;
for (i=0;i<2;i++) // hier ist die 2 die Länge des Wortes
{
cin>>ein;

if (c_A==ein) a[0] = a[0] * 100 + A; //A,B,C,D sind vorher schon definiert(11,12,13,14)
if (c_B==ein) a[0] = a[0] * 100 + B;
if (c_C==ein) a[0] = a[0] * 100 + C;
if (c_D==ein) a[0] = a[0] * 100 + D;
}

cout<<a[0];

Also das ist der Grundalgorithmus.Da ich aber nicht voher immer eingeben will, wielang das Wort (Bestehend aus m={A,B,C,D} welches bei ein eingegeben wird) ist ( für 2 einfach ne Variable definieren) , weiß ich nicht so recht wie ich das machen soll.
Falls jemand eine Idee hat bedanke ich mich schon mal im vorraus :)

Sigmund
 
Ich muss gestehen, dass ich überhaupt nicht begreife, was du da genau vorhast. Zeichenketten kann man auch bequemer eingeben.
Code:
char buffer[100];
cin >> buffer;
 
ist buffer da ne festgelegte funktion oder ne Variable?

ja das programm is auch noch nen bischen unstruckturiert....
also meine Problematik einfach vormuliert:

Ich gebe ein Wort ein.
Von diesem Wort will ich jeden Buchstaben einzelt "überprüfen" können( also ich will jeden Buchstaben in je einen Chars(für jeden einen ) einlesen.

Kann ich jetzt ein Wort in einen Char einlesen? ich kenne nämlich nur

char a;
a='G'

hiermit kann ich aber nur einen Buchstaben einlesen.
ich will aber ein Wort einlesen.
Dieses Wort muss ich aber nachher wieder in seine einzelnen Buchstaben zerlegen können!Daher hatte ich gedacht, dass ich jeden buchstaben einzeln einlese und das dann nachher in einem Wort wiedergebe. also alle chars hintereinander ausgebe.
hierfür muss ich aber die Länge des Wortes wissen, was mein Wort sehr unflexibel macht.

und dafür suche ich eine andere Möglichkeit.

Falls das noch nicht vertändlich ist schreib das bitte und ich werde noch einen noch ausführlicheren Text schreiben.

MFG
Sigmund
 
Es gibt eine Funktion die heißt isDigit() oder so ähnlich.
Code:
code:
#include <ctypes.h>
char buffer[100];
int í; int zahl=0;
cin>>buffer;
for(i=0;i<strlen(buffer);i++)
{
    if(isDigit(buffer[i])
    {
        zahl=toInt()//Weiß nich wie das heißt
        break;
    }
}
if(zahl)
    cout<<zahl<<endl;
else
    cout<<buffer<<endl;
 
Ach ja!
char buffer[1];
ist das gleiche wie
char buffer;
Du musst also nicht noch mal alles einzeln in ein Array kopieren.
char buffer[100] ist ein Array aus 99 char-Variablen
 
Zurück