Von String über char zu Ascii
-
Hallo,
ich habe folgendes Problem:
Ich habe einen Text aus einem Edit-Feld mit String deklariert:
String eingabe = edteingabe->Text;ansschließend in char "umgewandelt":
char* eingabe = edteingabe->Text.c_str();und versuche nun dieses in das Ascii-Format zu bringen:
int ascii = int(char(eingabe+2));Nur irgendwie will das nicht klappen!
Meine Aufgabe lautet so: Ich soll einen Text eingeben (mit Leerzeichen, ohne Sonderzeichen), dann einen Verschiebefaktor auswählen, z.B. 5 und dann sollen die Buchstaben alle im Alphabet um 5 sStellen nach rechts verschoben werden (A wird zu F).
Kann mir einer helfen?
-
wo genau liegt dein problem ?
Meep Meep
-
Indexiert wird mit [], so kannst du alle einzelnen Zeichen beliebig verändern.
char ascii = eingabe[2];
-
Hallo
"Klappt nicht" ist keine ausreichende Fehlerbeschreibung.
Worum solltest du in char umwandeln? Bleib bei AnsiString. Wenn du dann ein Zeichen des AnsiStrings behandeln willst must du schon jedes Element des Strings behandeln, nicht den String selber.
Und das extra umwandeln brauchst du auch nicht.String Eingabe = edteingabe->Text; for (int lv = 1; lv <= Eingabe.Length(); ++lv) Eingabe[lv] = Eingabe[lv] +2;bis bald
akari
-
Danke,
ja ich weiß, "klappt nicht" ist eine blöde Aussage. Folgendes Problem:
Die Methode mit
for (int lv = 1; lv <= Eingabe.Length(); ++lv) Eingabe[lv] = Eingabe[lv] +2;hatte ich auch schon ausprobiert. Nur habe ich es nicht hinbekommen, dass die Leerzeichen in der Eingabe auch Leerzeichen in der Ausgabe sind und, wenn das Alphabet zu Ende ist (also nach dem Z), dass wieder von Vorne angefangen wird (also von A). Das könnte ich mit Ascii-Rechnung leicht lösen, z.B.
if c>90 c=c-26Hast du da ne Idee?
-
ist das nicht das gleiche Problem wie hier?