Einzelnen Beitrag anzeigen
Alt 14.10.2005, 12:05   #10 (permalink)
kerri
Die Kerrimaus
 
Benutzerbild von kerri
 

Registriert seit: 17.11.2003
Beiträge: 2.987

kerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz seinkerri kann auf vieles stolz sein

Standard AW: Array an main() senden in C

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
kerri ist offline   Mit Zitat antworten