Hallo Max,
so, nachdem ich hier schon meinen dummen Kommentar abgeliefert habe, kommt noch etwas Code hinterher ;-)
#include <stdio.h>
main() {
char my_Array[10][20]={"A","A","C","D","E","F","G","H","I","J"}; /* "A" ist doppelt ! */
int start; /* Wo soll bei jedem Durchlauf gestartet werden? */
int array_laenge; /* Wie lang ist das Array? */
int i; /* Die uebliche Laufvariable */
int doppelt=0; /* Ist der aktuelle String doppelt vorhanden? */
array_laenge=10; /* Hier bei eigenem Array entsprechend anpassen */
start=0; /* Bei ersten Element starten. C beginnt bei 0 */
while ((doppelt==0) && (start < (array_laenge-1))) { /* Solange nichts doppelt und die Startposition noch nicht das letzte Element erreicht hat */
i=start+1; /* Mit der Suche beim nächsten Element anfangen, sonst findet sich das Element selbst */
while ((doppelt==0) && (i < array_laenge)) { /* Solange beim aktuellen Durchlauf keine doppelten Eintraege gefunden werden */
if (strcmp(my_Array[start],my_Array[i])==0) { /* Wenn das Start-Element und das aktuelle Element gleich sind */
doppelt=1; /* Dann beende die while-Schleife, indem das Kriterien nicht mehr erfuellt ist */
}
else
i++; /* Andernfalls das naechste Element anfassen */
}
if (doppelt==0) /* Wenn nach dem letzten Durchlauf kein doppelter String gefunden wurde */
start++; /* Beginne den nächsten Durchlauf mit dem nächsten Element des Arrays */
}
if (doppelt==1) { /* Wenn ein String doppelt vorkommt */
printf("Der %d. und der %d. String des Arrays sind identisch !\n",start,i); /* Dann die beiden Positionen ausgeben. Haette man start ohne die vorherige Ueberpruefung hochgezaehlt, waere hier eine falsche Position! */
}
else {
printf("Keine doppelten Strings im Array!\n"); /* Gib am Ende aus, dass alles OK ist */
}
}
Gruß
Hans