edutecnica

Esercizio 8        

Scrivere un programma C++ che, acquisita una stringa, esegua la ricerca e la sostituzione di una data sottostringa assegnata.


L'algoritmo esegue una indagine sulla presenza dei 255 caratteri ascii presenti in una stringa con lo scopo di individuare il carattere che appare con maggior frequenza.

#include <iostream>
#include <string>
using namespace std;
const int tot=255;//massimo dei caratteri permessi
main(){
 string s="La nebbia agli irti colli pioviginando sale";
 int freq[tot]={0}; // memorizza la frequenza di ogni carattere
 int i = 0, max;
 int ascii;

 while(s[i] != '\0'){
   ascii = (int)s.at(i);
   freq[ascii] += 1;
   i++;
 }
 //ricerca del carattere più frequente
 max = 0;
 for(i=0; i<tot; i++)
   if(freq[i] > freq[max])max = i;
 cout<<"Carattere + frequente:"<<(char)max<<endl;
 cout<<"che appare "<< freq[max]<<" volte";
}//fine main

Si nota la conversione di cast
ascii = (int)s.at(i)
che traduce un carattere nel suo corrispondente codice acii (intero) e la conversione
(char)max
che effettua l'operazione opposta, cioè traduce un numero intero comptreso tra 0÷255 nel carattere che ha il corrispondente codice ascii.