Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » bubblesort, Strings tauschen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.05.2005, 23:22 Uhr
~bubblesort
Gast


Kein Wunder, das mir keiner helfen will, wenn die Lösung eh schon in der Hand liegt. Man wie kann man nur so verplant sein!! *schämschäm*
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: