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