Array mit Wörtern in C

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.

OpenAirX3 
Fragesteller
 04.06.2011, 16:37

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.};

??

0
Tilex  04.06.2011, 16:52
@OpenAirX3

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.

0
OpenAirX3 
Fragesteller
 04.06.2011, 17:24
@Tilex

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
0
OpenAirX3 
Fragesteller
 04.06.2011, 17:28
@OpenAirX3

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
0

...

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?