Allora per il sottoprogramma direi che è limitato. Infatti se non riceve "cont" (che tu hai dichiarato come variabile esterna) non funziona.
Per sopperire a questa mancanza ti consiglio di aggiungere
codice:
#include <string.h>
e a questo punto fare questo:
codice:
void copiastringa(char* stringa)
{
int len, i;
len=strlen(stringa) /* questo comando ti dice la lunghezza esatta della stringa*/
char* risultato;
risultato=(char*)malloc(sizeof(char)*len);
for(i=0; i<len; i++)
*(risultato+i)=*(a+i);
return risultato;
}
In questo modo qualsiasi lunghezza abbia la stringa la legge.
Ora per il main suggerirei di fare una define
In modo tale che MAX non sia modificabile e diventerebbe molto più semplice:
codice:
char a[MAX];
printf("Inserisci una stringa: ");
scanf("%s", a); /* se vuoi mettere anche spazi devi scrivere scanf("%[^\n]", a);*/