ciao ragazzi mi trovo a risolvere un caso interessante ;

ho una stringa di "X" caratteri e devo trovare in essa i caratteri doppi e copiarli singolarmente in un nuovo vettore , in modo da leggere in esso un altra stringa ,

cioè caratteri singoli e carattere di terminazione '\0' alla fine del vettore



codice:


/* questo programma deve leggere una stringha , trovare i caratteri che si ripetono almeno due volte e
copiarne uno di essi in un altra stringa */

char nome [] = "antonino" ;
char doppie [4] ; /* Non so a priori le dimensioni del nuovo vettore
char *tempPtr  ;
char temp ;
char *lettera  ;

int count = 0 ;
int i = 0 ;
int j = 1 ;


lettera = nome ;
tempPtr = nome + 1 ;



while ( *lettera != '\0' ) 

{
	
	temp = *lettera ;

	while (*tempPtr != '\0' )

	{

		if (*tempPtr == temp   && count < 1 )
		{
			doppie [i] = temp ;
	        i++ ;
			count++ ;
		}

		tempPtr++ ;

	}
	count = 0 ;

	j++ ;

	if ( j < 8 )
        tempPtr = nome + j ;

	lettera++ ;
	

}



printf ("%c" , doppie [0] ) ;
printf ("%c\n\n" , doppie [1] ) ;
printf ("%c\n\n" , doppie [2] ) ;
doppie [3] =  '\0' ;
printf ("%s" , doppie  ) ;




	system ("PAUSE") ;

	return 0 ;


}

allora il problema è questo ;

1) non so a priori quanti caratteri doppi troverò nella stringa madre, e quindi che dimensioni deve avere il Nuovo vettore

2)la stringa madre deve essere esaminata un carattere alla volta con tutti gli altri caratteri , ma qualora un carattere sia gia stato esaminato non deve essere più preso in considerazione
; se il carattere nome[0] è stato confrontato con i restanti caratteri , il nuovo confronto deve partire da nome[1] e così via ;
mai ripartire dall'inizio , è spreco di risorse


3)il programma deve essere il più performante possibile , quindi meno memoria sprecata ( con variabili temporanee ad es.)




vorreste aiutarmi un po ?

pensavo di usare qualche funzione della libreria string.h , ma non ho trovato ancora nulla di che

grazie