C String in einem array auswerten?

sman

Cadet 4th Year
Registriert
Jan. 2007
Beiträge
70
hallo leute,

momentan arbeite ich an einem kleinen projekt, ich möchte eine anzahl von strings einlesen, die anzahl der strings wird als erstes eingegeben, danach werden verschiedene farben abgefragt. darauf soll mittels scanf die einzelnen farben eingelesen werden und in einem zweidimensinoalen array abgespeichert werden. Soweit funktioniert das ganze auch schon, aber nun möchte ich mittel einer bedingten verzweigung das auswerten. nun zu meiner frage wie kann ich die faben die in meinem array stehen vergleichen?

farbe[?][?]=='gelb'

ich denk mal dafür muss ich eine schleife mit einbauen aber ich hab keine vorstellung wie das aussehen soll. ich hoff ihr könnt mir helfen :rolleyes:

Code:
char farbe[5][20];
int anzahl,i;

fflush(stdin); scanf("%i", &anzahl);

for (i=0; i<anzahl; i++) {
   fflush(stdin); scanf("%s", &farbe[i][0]);
}
 
Meine C-Ausbildung ist schon 'ne weile her, aber:
farbe[?][?]=='gelb' - das geht in C doch gar nicht?! C kennt meines Wissens nach keine Strings, sondern nur char-Arrays.
 
Meine C-Ausbildung ist schon 'ne weile her, aber:
farbe[?][?]=='gelb' - das geht in C doch gar nicht?! C kennt meines Wissens nach keine Strings, sondern nur char-Arrays.

nein das geht natürlich nicht, das sollte eig nur zeigen was ich vor hab und c kann auch nur buchstaben einzeln im array abspeichern das ist soweit auch korrekt.
Ergänzung ()

Schaue dir mal zum String-Vergleich die Funktion strcmp an
statt den str...-Funktionen gleich lieber die strn...-Funtkionen verwenden.

stncmp
hm wie sieht das denn aus wenn mein string in einzel teilen im array liegt, kann mir da jemand ein beispiel geben?
 
also willst du schauen ob nur der teil vorkommt?
dann machst du halt ne schleife und schaust ob an stelle 0, 1, 2, ... das Wort steht usw..
is nicht unbedingt elegant, und vielleicht gibts ja ne entsprechende Funktion schon... gibt ja ne Sammlung an str(n)-Funktionen...
 
Mit scanf("%s") auf ein lokales Array schreiben ist fatal -> Buffer overflow vorprogrammiert.
 
Zurück
Oben