Char Array tauschen
-
Wie schaffe ich es den Inhalt zweier Arrays aus char's komplett zu tauschen?
z.B. wenn ich 10 Namen aus ner Datei einlese und diese dann alphabetisch sortieren will....mit swap geht das ja nicht...welchen befehl muss ich stattdesen nehmen?
-
Bei Zahlen geht es z. B. so:
const unsigned int max_zahl = 10; int arr[max_zahl] = { 5; 4; 9; 3; 8; 1; 7; 2; 6; 0 }; int hilf; int i, j; for(i = 0; i < max_zahl; ++i) { for(j = max_zahl; j > i; --j) { if(arr[j] < arr[i]) { hilf = arr[i]; arr[i] = arr[j]; arr[j] = hilf; } } }
Bei Strings ist es ähnlich. Du musst hald bedenken, dass du nicht nur eine Zahl bzw. ein Zeichen umtauschst, sondern eine Zeichenkette ;).
PS: schau dir dazu mal die Funktion strcpy() an.
-
Nochmal danke....jetzt kann ich endlich richtig weiter arbeiten! Hoffe mal das ich mit zurechtkomme!
Daumen hoch für die schnelle Hilfe
-
AJ schrieb:
Bei Strings ist es ähnlich. Du musst hald bedenken, dass du nicht nur eine Zahl bzw. ein Zeichen umtauschst, sondern eine Zeichenkette ;).
zeichenketten verschieben ist aber echt lahm. besser die pointer sortieren. beispiel:
#include <stdlib.h> #include <stdio.h> #include <string.h> #define SIZE(_x_) (sizeof(_x_)/sizeof(char*)) int cmp (char **a, char **b) { return strcmp (*a, *b); } int main() { char *strings[] = { "ein text", "und noch einer", "ja sowas", "der erste", }; int s; qsort (strings, SIZE(strings), sizeof(char*), cmp); for (s=0; s<SIZE(strings); s++) puts (strings[s]); }
-
Oooook....mit Zeigern kenn ich mich noch nicht wirklich aus! Das Thema kommt demnächst erst....dem entsprechend blick ich bei dem Prog nicht so hundert Prozent durch!
Aber noch 4 wochen dann gibts eh oop....
Habs gestern abend noch mehr oder weniger geschafft.....muss nur noch den Sortier-Algorhythmus perfektionieren!