string- bzw. char- frage
-
Ich habe folgendes Problem: Ich möchte ein Programm schreiben, welches vom Benutzer eingegebene Worte slphabetisch sortiert. Dabei möchte ich mir den ascii-code zu nutze machen, welcher ja alphabetisch aufsteigend für jeden Buchstaben eine Nummer bereit hält. z.B. a=49. Durch Casting kann ich dann die Anfangsbuchstaben vergleichen und so die Worte sortieren. Nun mein Problem:
Ich wollte es mit einem string-array machen. Das Problem dabei: ich weiß nicht, wie ich auf die einzelnen Elemente zugreifen kann.
Bei char-variablen ist das Problem, dass ich dem Benutzer nicht die Eingabe beliebig vieler Worte erlauben kann, da ich jede Variable vorher deklarieren müsste, natürlich mit der dann entsprechenden Länge.
Kurz: Wenn string text[2]="hallo", wie kann ich dann einzeln auf das h oder auf ein beliebiges anderes Element zugreifen.
Etwas lang geworden xder Text. Freue mich über jede Antwort. Danke
-
#include <iostream> #include <string> int main() { std::string meine_strings[] = {"hello", "world", "!"}; std::cout << meine_strings[0][0] /* oder meine_strings[0].at(0) */ << std::endl; return 0; }
-
Squawking schrieb:
Kurz: Wenn string text[2]="hallo", wie kann ich dann einzeln auf das h oder auf ein beliebiges anderes Element zugreifen.
text[2][0]== h

-
Alles beantwortet. Grossen Dank!!
-
Habe jetzt mal einen Code geschrieben. In diesem ergibt sicher allerdings ein problem. Och denke es hat was mit dem Casting zu tun. Wer will kann ja mal drauf schaun:
#include <iostream> #include <string> int main() { int how_many; int asc1; int asc2; int counter=0; cout<<"Wie viele Worte wollen Sie alphabetisch sortieren? "; cin>>how_many; string word[how_many]; string word_change; cout<<"Bitte geben Sie nun die Worte ein: "<<endl; while(counter<how_many) { cin>>word[counter]; counter++; } counter=0; while(counter<how_many) //In dieser Schleife stürzt das Programm offensichtlich ab { asc1=(int) word[counter][0]; asc2=(int) word[counter+1][0]; if(asc1>asc2) { word_change=word[counter+1]; word[counter+1]=word[counter]; word[counter]=word_change; } counter++; } }Grüsse
-
while(counter<how_many-1)so sollte es gehen

-
GRRR...
Aber sicher doch. Das letzte Wort würde ja sonst mit einem Wort verglichen werden, welches es gar nicht gibt...Nochmals herzlichen Dank. Denke ich komme jetzt klar.