Hallo,
Ich moechte diese Textdatei einlesen und die erste Spalte in
einen String schreiben (wenn da moeglich ist) um dann spaeter
diese mit strcmp zu vergleichen.
Also so sieht das grobe gerüst aus, um ein Datei einzulesen:
FILE\* fp;
fp = fopen("datei.txt","r");
if ( fp != NULL )
{
char buff[512]; // muss lang genug sein
// Zeile für Zeile in buff einlesen
while ( fgets(buff, sizeof(buff), fp) != NULL ) // solange bis Dateiende erreicht
{
// an dieser stelle hast du die aktuelle Zeile im buff-String
// diesen kannst du jetzt parsen (kopiere alles, bis das erste leerzeichen/ trennzeichen kommt)
// Stringterminierung '\0' nicht vergessen
// dann kannst du den string ins array speichern
}
}
Denn bisher habe ich immer nur Zahlen in ein Array eingelesen
aber das hilft mir hier nicht weiter oder?
Ein String in C enspricht ein Array von Zeichen, wobei das Ende mit ‚\0‘ gekennzeichnet wird.
Möchtest du jetzt ein Array von Strings haben, musst du ein Array vom Array von Zeichen erstellen:
char asMyStringarray[ANZAHL_DER_STRINGS][LAENGE_JEDES_STRINGS+1];
-> das ist eine statische Deklarierung. Wenn du vorher nicht weißt, wie viele Strings kommen, dann musst du es dynamisch erstellen:
char* sMyStringarray[LAENGE_JEDES_STRINGS+1] = (char*)calloc( sizeof(char**), 1);
für jedes neues element müsstest du den speicher mit realloc um 1 vergrößern.
Zuweisung eines Strings in ein Stringarray:
char sMyString[100] = {"Erste Zeile"}
char asMyStringArray[20];
strcpy(asMyStringArray[0], sMyString);
strcpy(asMyStringArray[1], "Zweite Zeile");
strcpy(asMyStringArray[2], "Dritte Zeile");
...