Probleme
-
Hallo,
danke für deine Hilfe, Habe dazu auch gleich einmal eine Frage: Ich verstehe das - Zeichen in Zeile 8 nicht:
eingabe[i] -= 'z' - 'a' + 1;Wofür steht das "-"-Zeichen? Ich habe zwar auch ein "+"-Zeichen in meinem Code, aber das verstehe ich auch nicht... Ich kenn mich zwar mit C++ aus, habe auch schon ne Projektarbeit damit bewältigt (mit ner 1!!!), aber ich würde mich nie als Profi, sondern immer nur als Anfänger bezeichnen.
Danke aber schon mal!
-
Ich glaub, ich bin zu blöd...
Habe deinen Vorschlag übernommen und es klappt, zumindestens für einen kleinen Verschiebefaktor. Wenn ich größere Zahlen nehme, wie z.B. 15 , bekomme ich immer nur Sonderzeichen als Antwort. Ich weiß nicht warum?
Bzgl. deines Tipps wegen Ascii-Code:
String eingabe = edteingabe->Text; String zeichenkette = eingabe.Length(); char* eingabe = edteingabe->Text.c_str(); //Umwandlung Text aus Eingabe von string in char strupr(eingabe); //Konvertierung in Großbuchstaben int ascii = int(char(eingabe+2));Das habe ich auch schon probiert, aber ich weiß nicht, wie ich die Buchstaben/Zahlen in den Ascii-Code umwandle, denn
int ascii = int(char(eingabe+2));halte ich nicht für richtig...
-
Hallo
Wenn du dir die ASCII-Tabelle mal genauer angeschaut hättest, wüstest du das dadrin auch die besagten Sonderzeichen drin sind. Dein Verschiebefakter wird immer draufgerechnet, egal ob Buchstabe oder Sonderzeichen rauskommt. Du must, wenn du über die Buchstaben hinaus verschiebst, eben die Verschiebung am anderen Ende des Buchstabenbereichens wieder fortsetzen.
Das - und das + arbeiten bei char genauso wie bei int. Für C++ ist char auch nur eine Zahl.
bis bald
akari
-
@mad21
mad21 schrieb:
for (int i=1;i<=eingabe.Length();++i) //bis i die Länge des Eingabetextes erreicht hat { if (eingabe[i]=' ') eingabe[i]=' '; ...nochmal kurz zu diesem Problem:
ist "if (eingabe[i]=' ')" ein Vergleich oder eine Zuweisung? wenn du das nicht weißt bzw. den Unterschied der beiden Begriffe nicht kennst wage ich zu bezweifeln dass du ein Projekt mit C++ selbst gemacht hast
-
Hallo Linnea,
auch wenn du es mir nicht glauben magst: JA, ich habe eine Projektarbeit mit Hilfe von C++ geschrieben. Und JA, ich habe dafür die Note 1 (sehr gut) bekommen!
Mit "if (eingabe[i]=' ')" will ich folgendes ausdrücken:
Wenn die Eingabe (in diesem Fall "i") ein Leerzeichen ist!!! Also ein Vergleich und KEINE Zuweisung.
Ich hoffe, es gibt jetzt nichts mehr zu bezweifeln.
Trotzdem Danke für die lobreiche Kritik!
-
Das muss ja eine toller Lehrer sein, der so eine Projektarbeit mit 1 bewertet hat.
Vergleich: ==
Zuweisung: =
-
Ja, das war eine tolle Lehrerin!
Dann hab ich nun mal das "="-Zeichen vergessen! Das komische ist nur, dass in meinem Quellcode nirgends ein "="-Zeichen drin stand und das immer funktioniert hat.
Das kann doch nicht sein oder?
-
Danke für eure Hilfe!
Nur eine Sache möchte ich noch einmal anmerken:
Ich finde es unfair, wie man hier Neulinge behandelt. Ich habe immer einen ordentlichen Text geschrieben und oft eine beleidigende Antwort bekommen, wie "hättest du mal genauer gelesen" oder "wage ich zu bezweifeln dass du ein Projekt mit C++ selbst gemacht hast". Das finde ich nicht sehr korrekt!
Ich hatte schon am Anfang darauf hingewiesen, dass ich ein Neuling bin! Es waren natürlich auch gute, hilfreiche Antworten dabei, aber wie sagt man so schön: Der Ton macht die Musik!
Trotzdem Danke!
-
Nimm's nicht persönlich.
Der Fehler ist zwar schnell gemacht und im Code auch leicht zu übersehen, nach unseren zahlreichen Hinweisen hättest du ihn mit dem dir selbst zugeschriebenen Kenntnisstand aber längst finden sollen. Dass das nicht passiert ist, provoziert unweigerlich gewisse Zweifel an besagtem Kenntnisstand.Mit dem Ton hast du schon recht, allerdings solltest du auch deine Beiträge mal daraufhin abklopfen. Und wenn du bei der nächsten Frage auch noch eine aussagekräftige Überschrift formulierst, wird dir mit Sicherheit in Nullkommanix geholfen werden.

-
Hast Recht,
das Thema war unglücklich gewählt. Darin bin ich nicht so gut.
Was meinen Kenntnisstand angeht:
"Dass das nicht passiert ist, provoziert unweigerlich gewisse Zweifel an besagtem Kenntnisstand."
- - - vielleicht sollte ich dazu sagen, dass ich mich mit C++ nur ein halbes Jahr beschäftigt hatte und das war vor 2 Jahren, also schon etwas länger her. Ich hatte das versucht über meine Einstufung als Neuling auszudrücken - hat wohl nicht geklappt.
Naja, ist ja auch egal. Nächstmal weiß ich es besser, man lernt ja nur dazu.

Bis denn!