/* Projekt RepeatString Erstellen einer Zeichenkette (string) aus wiederholten Zeichenketten. Version 1.0 und 2.0 / 2002.04.01 Autor: pstrainer@gmx.net */ #include #include #include #define line_maxlen 500 #define myversion 2 // valid options: {1,2} int repeat_string(int i,char*,char*); // *************** Version 1 ******************** #if myversion==1 void main (void) { int n; char mystring[line_maxlen]; char rep[]="test 123 "; printf("Projekt RepeatString\n"); n=3; repeat_string(n,rep,mystring); printf("RepeatString(%d,%s)=%s\n",n,rep,mystring); } int repeat_string(int nrep,char *r,char *s) { /* Funktion repeat_string Erstellen einer Zeichenkette aus wiederholten Zeichenketten. Version 1.0 / 2002.04.01 Autor: Peter Schindler, pstrainer@gmx.net Syntax: int repeat_string(int i,char*,char*); ... int n,sl; char mystring[...]; char rep[...]; ... sl=repeat_string(n,rep,mystring); Length: 15 lines of code */ int i,j,n; char c; i=0; // mystring index for (n=0;n0) { fflush(stdin); // flush console input buffer printf("\nGeben sie einen Wiederhol-Text ein: "); gets(rep); // get text from the console rl=strlen(rep); if (rl) { printf("Wie oft soll dieser Text wiederholt werden: "); scanf("%d",&n); // get number of repetitions sl=repeat_string(n,rep,mystring); printf("RepeatString(%d,%s)=%s\n",n,rep,mystring); } } #ifdef _DEBUG printf("\nPress any key to continue "); _getch(); #endif } int repeat_string(int nrep,char *r,char *s) { /* Funktion repeat_string Erstellen einer Zeichenkette aus wiederholten Zeichenketten. Version 2.0 / 2002.04.01 Autor: Peter Schindler, pstrainer@gmx.net >> Updates und einstellbare Optionen: > Wenn das Argument n<=0 ist, wird ein leerer string erzeugt. > Wenn das Argument n>100 ist, wird n=100 gesetzt (einstellbar). > Falls der repeat-string kein Ende enthält, so wird die Funktion nach 100 Zeichen (einstellbar) abgebrochen. > Falls die string-Länge (mystring) 100 Zeichen überschreitet, so wird der string nur bis zu dieser Länge erzeugt. > Die Funktion gibt die Gesamtlänge des erzeugten strings an das aufrufende Programm zurück. Syntax: int repeat_string(int i,char*,char*); ... int n,sl; char mystring[...]; char rep[...]; ... sl=repeat_string(n,rep,mystring); Length: 25 lines of code */ #define nmin 0 // min repeats #define nmax 100 // max repeats #define repmax 100 // max length of rep string #define mystrmax 100 // max length of result string int i,j,n; char c; if(nrepnmax) nrep=nmax; if(nrep0) { for (n=0;nrepmax) || (i>=mystrmax) ) c='\0'; if (c!='\0') s[i++]=c; } } } s[i]='\0'; // terminate string return i-1; // return length of string } // *************** Version ? ******************** #else void main (void) { printf("Makro #myversion wurde illegal definiert\n"); } #endif /* ========== eof ========== */