/* primer62.c - dopisivanje vise niski */ #include #include #include char *dopis(char *, ...); main(){ printf("%s\n", dopis("Dobar ", "dan",","" narode","!", NULL) ); } char *dopis(char *rec, ...) { va_list niske; char *x, *gde, *r; int l; /* 1. prolaz */ l = strlen(rec); va_start( niske, rec ); while( x = va_arg( niske, char *) ) // Poslednji argument je NULL !!! l += strlen(x); va_end( niske ); /* 2. prolaz */ gde = r = (char *) malloc( l + 1 ); // Alokacija strcpy( gde, rec); gde += strlen( rec ); va_start( niske, rec ); while( x = va_arg( niske, char * ) ) { strcpy( gde, x ); gde += strlen( x ); } va_end( niske ); return r; }