No, la funzione quantiCar deve restituire un intero, indicante, quante volte il carattere passato è presente nella stringa passata!
Detto ciò, per fare quello che chiedi tu con l'allocazione si potrebbe fare:
codice:
char* temp = nome, result;
int n = 0, i = 0, j;
j = 0;
while (nome[j] != '\0')
{
if (quantiCar (temp, nome[j]) > 1) n++;
j++;
}
result = (char*) malloc (sizeof(char)*n);
Poi mi sa che il compilatore si incasina un po' con i puntatori nel pezzo di codice che avevo scritto prima, quindi dovresti fare tipo:
codice:
j = 0;
while (nome[j] != '\0')
{
if (strchr (result, nome[j]) != NULL) /* strchr (char* s, char t) ritorna il puntatore alla prima
j++; occorrenza di t in s, o NULL se t non è presente */
else if (quantiCar (temp, nome[j]) > 1)
{
result[i] = nome[j];
i++;
j++;
}
else
j++;
}
result[i] = '\0';
Lascio a te la funzione 'quantiCar' dai