Hmmm.... also man koennte den Vegleich auch von Hand machen, also Element fuer Element - ist aber, wie gesagt, das Problem der unbekannten Laenge - das laesst sich aber abfangen.
Diese Strings (char []) haben am Ende immer das Zeichen '\0' (wird als ein Zeichen gewertet, wie '\n'). Also ein String char MeinString[]="hallo" wird so in einzelne Zeichen zerlegt und im Array gespeichert: 'h', 'a', 'l', 'l', 'o', '\0' Also waere es moeglich, eine while-Schleife zu konstruieren, die, sobald sie das Zeichen '\0' findet, abbricht, etwa so:
Code:
int i=0;
char MeinArray[] = "hallo";
char AnderesArray[] = "auch hallo";
while (MeinArray[i] != '\0' || AnderesArray[i] != '\0') // Abbruch wenn Stringende eines Arrays gefunden
{
if (verglArr[i]!=array[i])
{
printf ("aaaaaargh!\n");
printf ("Zeichen %d: %c != %c", i, MeinArray[i], AnderesArray[i]);
break; // Schleifen-Abbruch bei Ungleichheit
}
i++; // zaehlvariable eins hochzaehlen
}
Faengt allerdings noch nicht ab, das die Strings untershiedlich lang sein koennten, also "hallo" und "hallodriho" wuerden als gleich gewertet, muesste man eventuell noch einbauen: Einfach per while die solange den String durchgehen, bis '\0' gefunden wird, dabei die Anzahl der Zeichen zaehlen, das fuer jeden String machen, und die beiden Ergebnisse vergleichen.
Gruesse, kerri