/*
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 ========== */
               (
geocities.com/pstrainer/entwicklung/c)                   (
geocities.com/pstrainer/entwicklung)                   (
geocities.com/pstrainer)