Datei: strout.c
1 /* 2 * strout.c 3 * Strings einlesen, dynamisch speichern 4 * und mit Zeilennummer ausgeben 5 * Wed Dec 15 16:31:29 1999 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> 10 #include <string.h> 11 12 #define NBUF 1024 /* Groesse des Einlesepuffers */ 13 #define NSTR 256 /* Groesse des Stringvektors */ 14 15 void main(void) 16 { 17 char *str[NSTR]; /* Stringvektor */ 18 char buf[NBUF]; /* Einlesepuffer */ 19 int nstr = 0; /* Zeilenzaehler */ 20 char *bp; /* Stringpointer */ 21 int len; /* Laenge */ 22 int n; /* Zaehler */ 23 24 /* Strings in Vektor str einlesen */ 25 while (gets(buf) != NULL && nstr < NSTR) { 26 /* Stringlaenge feststellen */ 27 len = strlen(buf); 28 /* Speicherplatz auf Heap reservieren: len + 1 */ 29 if ((bp = (char *) malloc(len + 1)) == NULL) { 30 printf("Fehler: Kein Speicherplatz!\n"); 31 exit(1); 32 } 33 /* String von Puffer in Heap kopieren und in Vektor eintragen */ 34 str[nstr] = strcpy(bp, buf); 35 ++nstr; 36 } 37 38 /* Stringvektor mit Zeilennummer ausgeben */ 39 for (n = 0; n < nstr; n++) 40 printf("%3d: %s\n", n + 1, str[n]); 41 42 exit(0); 43 44 } /* main() */
Erzeugt von c2html 1.01 |