Aus einzulesender Datei sollen Wörter und Zeichen im Vektor gespeichert werden

QiGong

Grünschnabel
Hallo,

ich habe folgendes Problem in c :

Aus einer einzulesenden Textdatei sollen Wörter und Zeichen
erkannt werden. Diese sollen dann in einen Vektor gespeichert werden.
Beispiel Text in der Textdatei:

Haus, wer, !, los;
Gast, Bier, ---, Lose;

Der Vektor sollte am Schluss folgenden dynamischen Aufbau haben:

vektor[] = {"Haus", "wer", "!", "los", "\n", "Gast", "Bier", "---", "Lose"};

So das ich über z.B. vektor[1] direkt den Wert "wer" ansprechen kann.

Bis jetzt habe ich versucht die Datei Zeichenweise einzulesen, hierdurch speichere ich aber jedes Zeichen in einem neuen VektorIndex ab.
Also z.B.

vektor[]={'H', 'a', 'u', 's','\o', 'w', 'e', 'r', ..............\n.........};

Hier folgt der bisherige Quellcode:


fp = fopen(filename,"r");
if (fp == 0)
{
printf("The file (%s) could not be opened!", filename);
}
else
{
while((c = fgetc(fp)) != EOF)
{
TextVektor[vIndex] = c;
vIndex++;
}
}

Ich hoffe ihr könnt mir da weiter helfen.
Schon mal vielen Dank im Voraus!
 
Hi,

ich schlage vor ein Array von Pointern zu erstellen, also char **vector .
Code:
char TextVector[100];
char **vector;
int i=0, vectorSize=0;
while((c = fgetc(fp)) != EOF) 
{
  TextVektor[i] = c;
  i++;
  if(c == ',' || c == ';')
  {
    vector[vectorSize] = (char*)calloc(1, i);
    TextVector[i-1] = 0;
    strcpy(vector[vectorSize], TextVector);
    i = 0;
  }
}
// jez kannst du auf den Vektor per vector[x] zugreifen
// Fehler vorbehalten, is ja nur Beischpiel
Der code erstellt eine Array von Dynamisch erstellten ZeichenVektoren.
 
Zurück