Code:
#include <ctype.h>
#include <stdio.h>
#define N 1000
char f_cif (char tekst[], int n, char cifre[], int* nc, char slova[], int* ns) {
int i;
char znak;
*nc=0;
*ns=0;
for (i=0;i<n;i++) {
znak=tekst[i];
if (isdigit(znak)!=0) cifre[(*nc)++]=znak;
else if (isalpha(znak)!=0) slova[(*ns)++]=znak;
}
}
main () {
char tekst[N], znak;
int n=0, i;
printf("\nUnesi proizvoljan tekst (ctrl+Z za izlaz).\n");
while ((znak=getchar())!=EOF) tekst[n++]=znak;
for (i=0;i<n;i++) putchar(tekst);
/* ------ poziv potprograma ---------- */
char cifre[N], slova[N];
int ns; /* broj slova */
int nc; /* broj cifara */
f_cif(tekst,n,cifre,&nc,slova,&ns);
/* ------ ispisivanje rezultata ------ */
/* ... */
printf("Slova: ");
for (i=0;i<ns;i++) printf("%c ",slova[i]);
printf("\n");
printf("Cifre: ");
for (i=0;i<nc;i++) printf("%c ",cifre[i]);
printf("\n");
}
Kao što rekoh, nizovi slova i cifara definisani su u glavnom programu, pa prosleđeni funkciji. Njihove dužine su prosleđene funkciji kao pokazivači, da bi funkcija mogla da ih izmeni.