PDA

Visualizza la versione completa : [C++] Contare le occorrenze di un carattere in una stringa


Crosta99
08-02-2019, 17:00
Salve a tutti! Ho problemi a fare un esercizio per l'università.
Vi cito il testo:
"Definire una funzione che data una stringa restituisce il carattere che occorre più volte nella stringa. Se più caratteri occorrono lo stesso numero di volte invece restituisce '\0'. ".

alka
08-02-2019, 18:31
E il problema qual è?
Fornisci qualche indicazione aggiuntiva e proponi la tua soluzione al problema, spiegando cosa non va o cosa non riesci a risolvere.

Leggi il Regolamento (https://forum.html.it/forum/showthread.php?threadid=973887) per questa e altre regole da seguire.

Crosta99
08-02-2019, 18:43
Il problema è che non so proprio come risolverlo.

oregon
09-02-2019, 09:36
Il problema è che il forum non serve a scrivere tutto il codice altrui.

Non hai nessuna idea? Possibile? Che facoltà segui? Qualcosa per iniziare ?

Crosta99
11-02-2019, 12:29
La mia idea era quella di confrontare i diversi caratteri e mettere un contatore che si incrementava ogni volta che trovava caratteri uguali ma io riesco solo a confrontare il primo carattere con gli altri e non riesco a confrontarli tutti.

optime
11-02-2019, 14:21
come fai a prendere solo il primo carattere? che istruzione usi?

Crosta99
11-02-2019, 14:53
Usavo un altra variabile char dove salvavo il carattere.

optime
11-02-2019, 15:12
Usavo un altra variabile char dove salvavo il carattere. ? E' questa l'istruzione? :confused:

oregon
11-02-2019, 16:39
Scrivi codice con le liste dinamiche collegate e non sai usare un ciclo for?

Crosta99
11-02-2019, 17:53
Eh si, mi rimane più facile scrivere quel tipo di codice.
Io avevo scritto questo un po' di tempo fa ma è sbagliato però non so come correggerlo:



void conta(char a[], int lung){
int i;
int count=0;
int maxcount=0;
char maxchar;
int j;
for(i=0;i<lung-1;i++){
for(j=0;j<lung-1;j++){


if(a[i]==a[j]){


count++;
}else;
if(count>maxcount){
maxcount=count;
maxchar=a[i];
}else;
}
count=0;
}
cout<<maxchar;
}

Loading