Array mit Wörtern in C
Hallo zusammen, also ich würde gerne ein Array machen, in welchem mann anstatt Zahlen, Wörter definieren kann. Diese will ich dann mit einem "srand((unsigned int)time(0));" automatisch zuordnen lassen. Also dass es auf Zufall basierend z.B folgendes ausgibt:
- Wort "Zufallswort 1"
- Wort "Zufallswort 2"etc.
die Wörter natürlich aus einer selbst erstellten Liste von Wörtern.Wie mache ich das am besten? Mit Zahlen wüsste ich wie es geht aber mit Wörtern habe ich keine Ahnung. Ich hoffe Ihr könnt mir helfen (:
3 Antworten
Nunja, da man in C (im Gegensatz zu C++) keine ganzen Strings auf einen Variablentypen speichern kann (okay, bei C++ ist String auch eine Klasse..), muss man sich sowieso mit char-Arrays behelfen.
Ein char-Array speichert erstmal Zeichen hintereinander ab. Damit kannst du also Wörter zusammensetzen.
char meinwort[6] = "Hallo"; //klappt so nur bei der InitialisierungDas speichert dann H, a, l, l, o, \0 (das steht für Zeichenketten-Ende)
wenn du nun mehrere Wörter abspeichern möchtest, musst du das mit einem mehrdimensionalen Array machen.
char mehrerewoerter[10][40]; //10 Wörter mit bis zu 39 Buchstaben je Wort.
verwende strcpy(ZIEL, Wort);zum beispiel so: strcpy(meinwort, "Hallo");
oder so: strcpy(mehrerewoerter[2], "Wort3");
Nachdem ich dir nun einige Hinweise und die nötigen Stichwörter gegeben habe, kannst du sicher das ein oder andere schnell noch bei google finden, um nun weiter zu kommen.
jo, so kannst du sie bei der initialisierung befüllen. wenn du allerdings nachher an einem bestehenden array was hinzufügen willst, musst du halt strcpy verwenden.
ok danke aber bei mir funktioniert es immer noch nicht so recht:int main(){
//Deklarationenchar name[6][20] = {"Alina", "Cindy", "Deborah", "Noelle", "Anina", "Thea"};int i, j;//Startsequenzprintf("Einteilung für Samstag, 4. Juni 2011\n\n");printf("Einteilung l\x84uft\n");//Warteschleifefor (j=0;j
int main() {
//Deklarationenchar name[6][20] = {"Alina", "Cindy", "Deborah", "Noelle", "Anina", "Thea"};int i, j;//Startsequenzprintf("Einteilung für Samstag, 4. Juni 2011\n\n");printf("Einteilung l\x84uft\n");//Warteschleifefor (j=0;j
...
char *woerter[] = {"und", "jetzt", "komst", "du"};
...
woerter[2] = "kommst";
PS: Die Zufallsfunktion heißt rand() und wird zusammen mit RAND_MAX benutzt. srand() initialisiert den Zufallsgenerator.
Meinst Du einen Hash oder was meinst Du?
ah perfekt danke genau das habe ich gesucht (:dann muss ich ja eigentlich ein array in einem array machen - sprich dargestellt hintereinander richtig? was ich noch nicht ganz begreife ist das definieren der wörter mit dem strcpy.. kann ich sie nicht direkt im array definieren?so in der art:
char mehrerewoerter[10][40] = {"wort1", "wort2", etc.};
??