Hi!
Ich hab hier ein Problem, an dem ich schon Stunden sitze, aber einfach keine Lösung finde...
Ich habe eine Funktion zum Vergleichen von Arrays geschrieben:
Zur Funktionsweise: Falls ein Zeichen gefunden wird, das nicht übereinstimmt, soll im gesetzten Array soweit zurückgesprungen werden, bis das Wort beginnt, in dem beim Vergleichsarray der Fehler auftritt. Dann soll bis zum nächsten Wort in array_gesetzt das Wort, in dem beim array_vergleich der Fehler steckt, ausgegeben werden.
Trennzeichen sind standardmäßig ' ', Abbruchszeichen '\0'.
Für meine Zwecke rufe ich die Funktion allerdings mit '\0' für Trennzeichen und '&' für Ende auf...
Das Problem ist jetzt, dass bei ungleichen Arrays statts einem falschen Wort immer nur ein Leerzeichen ausgegeben wird...
Ich hoffe, ihr könnt mir helfen!
MfG
DeChecka
Ich hab hier ein Problem, an dem ich schon Stunden sitze, aber einfach keine Lösung finde...
Ich habe eine Funktion zum Vergleichen von Arrays geschrieben:
Code:
bool ArrayVergleichen(char *array_gesetzt, char *array_vergleich, char trennzeichen = ' ', char abbruch = '\0')
{
int zaehl = 0;
for(int zaehlen = 0; ; ++zaehlen)
{
// Trennzeichen oder Abbruchzeichen, das ungleich ist
if(array_gesetzt[zaehlen] != array_vergleich[zaehlen])
{
if((array_gesetzt[zaehlen] == trennzeichen) || (array_gesetzt[zaehlen] == abbruch))
{
for(zaehl = 1; ; ++zaehl)
{
if(array_gesetzt[zaehlen - zaehl] == trennzeichen)
break;
}
for(zaehl = zaehl - 1; array_gesetzt[zaehlen - zaehl] != trennzeichen; --zaehl)
cout << array_gesetzt[zaehlen - zaehl];
return false;
}
// Generelle Ungleichheit zweier Zeichen der Arrays
for(zaehl = 1; ; ++zaehl)
{
if(array_gesetzt[zaehlen - zaehl] == trennzeichen)
break;
}
for(zaehl = zaehl - 1; array_gesetzt[zaehlen - zaehl] != trennzeichen; --zaehl);
cout << array_gesetzt[zaehlen - zaehl];
return false;
}
}
return true;
}
Zur Funktionsweise: Falls ein Zeichen gefunden wird, das nicht übereinstimmt, soll im gesetzten Array soweit zurückgesprungen werden, bis das Wort beginnt, in dem beim Vergleichsarray der Fehler auftritt. Dann soll bis zum nächsten Wort in array_gesetzt das Wort, in dem beim array_vergleich der Fehler steckt, ausgegeben werden.
Trennzeichen sind standardmäßig ' ', Abbruchszeichen '\0'.
Für meine Zwecke rufe ich die Funktion allerdings mit '\0' für Trennzeichen und '&' für Ende auf...
Das Problem ist jetzt, dass bei ungleichen Arrays statts einem falschen Wort immer nur ein Leerzeichen ausgegeben wird...
Ich hoffe, ihr könnt mir helfen!
MfG
DeChecka