000
16.05.2005, 21:54 Uhr
~bubblesort
Gast
|
Hallo
Mein Problem ist, das ich mit Bubblesort meine Strings sortieren möchte und meine Kenntnisse in Sachen C zu wünschen übrig lassen.
C++: |
/***********************************************************************/ void bubble_sort(char *zeiger[],long anzahl, int (*verg)(char *a, char *b)) { int durchgang; int position; int vergleichswert;
for( durchgang = 1; durchgang < anzahl; durchgang++) { for( position = 0; position < (anzahl - durchgang); position++) { vergleichswert = (*verg)( zeiger[position], zeiger[position+1]); if(vergleichswert) { #ifdef ZEICHENz tausch_zeiger(zeiger, position, position+1); #else tausch_zeichen(zeiger, position, position+1); #endif } } /* Position */ } /* Durchgang */ } /******************** VERGLEICHFUNKTION-ZEIGER ********************/ void tausch_zeiger(char *array[], int x, int y) /* Vertausche Pointer */ { char *temp; temp = array[x]; array[x] = array[y]; array[y] = temp; }
|
In einem anderen Forum wurde mir gesagt das das array[] nicht in die tempvariable passt. Anscheinen war ich zu Begriffsstutzig und die wollten mir nicht weiterhelfen. Darum post ich hier mal.
C++: |
/******************* VERGLEICHFUNKTION-ZEICHEN ********************/ void tausch_zeichen(char *array[], int x, int y) /* Vertausche Strings */ { char temp[300]; temp[0] = *array[x]; strcpy(array[x], array[y]); *array[y] = temp[0]; } /***********************************************************************/
|
Aber warum soll das nicht da rein passen. Ein String enthält nur um die 100 Zeichen und die tempvariable passen doch 300.
Laut Übungsaufgabe soll ich die zwei leeren Zeilen verfolständigen, aber wie? Was mach ich falsch? Könnt ihr mir bitte einen Tip geben. Komm echt nicht weiter?
C++: |
/******************* VERGLEICHFUNKTION-ZEICHEN ********************/ void tausch_zeichen(char *array[], int x, int y) /* Vertausche Strings */ { char temp[300]; ... strcpy(array[x], array[y]); ... } /***********************************************************************/
|
Danke schon mal
Gruß chigital |