Wo liegt hier der Fehler??
-
Ich weiss echt net, was hier dran falsch is..
Is son Musterprogramm, aber läuft irgendwie net! Vielleicht kann mir ja jmd helfen! *thx*
sascha1: /* qsort() und bsearch() für Strings verwenden. /
2:
3: #include <stdio.h>
4: #include <stdlib.h>
5: #include <string.h>
6:
7: #define MAX 20
8:
9: int vergl(const void *s1, const void *s2);
10:
11: int main(void)
12: {
13: char *daten[MAX], puffer[80], *zgr, *suche, **suche1;
14: int count;
15:
16: / Eine Liste von Wörtern einlesen. /
17:
18: printf("Geben Sie %d Wörter ein.\n",MAX);
19:
20: for (count = 0; count < MAX; count++)
21: {
22: printf("Wort %d: ", count+1);
23: fgets(puffer,80,stdin);
24: puffer[strlen(puffer)-1] = 0;
25: daten[count] = malloc(strlen(puffer)+1);
26: strcpy(daten[count], puffer);
27: }
28:
29: / Sortiert die Wörter (oder besser die Zeiger). /
30:
31: qsort(daten, MAX, sizeof(daten[0]), vergl);
32:
33: / Die sortierten Wörter ausgeben. /
34:
35: for (count = 0; count < MAX; count++)
36: printf("\n%d: %s", count+1, daten[count]);
37:
38: / Einen Suchbegriff einlesen. /
39:
40: printf("\n\nGeben Sie einen Suchbegriff ein: ");
41: fgets(puffer,80,stdin);
42: puffer[strlen(puffer)-1] = 0;
43:
44: / Führt die Suche durch. suche1 wird zum Zeiger /
45: / auf den Zeiger auf den Suchbegriff./
46:
47: suche = puffer;
48: suche1 = &suche;
49: zgr = bsearch(suche1, daten, MAX, sizeof(daten[0]), vergl);
50:
51: if (zgr != NULL)
52: printf("%s gefunden.\n", puffer);
53: else
54: printf("%s nicht gefunden.\n", puffer);
55: return(0);
56: }
57:
58: int vergl(const void *s1, const void *s2)
59: {
60: return (strcmp((char **)s1, *(char **)s2));
61: }
-
Big1one1 schrieb:
Wo liegt hier der Fehler??
...ist ein schlechter Threadtitel.
Big1one1 schrieb:
läuft irgendwie net!
...ist keine ausreichende Fehlerbeschreibung.
Code-Tags statt Zeilennummern wären auch gut gewesen.
Bei mir läuft das Programm übrigens.