Vous essayez d'écrire une fonction qui analyse un fichier d'entrée et affiche des informations telles que des caractères distincts, la longueur moyenne de chaque mot et le nombre total de mots. J'ai du mal à comprendre comment garder la trace des caractères distincts dans une chaîne. A titre d'exemple, la ligne:Comment garder une trace de caractères et de mots distincts?
Etre ou ne pas être, telle est la question.
Doit contenir 10 mots au total, 12 caractères distincts et 3,2 mots de longueur moyenne.
Ceci est le code que j'ai jusqu'à présent:
void fileInfo(const string& fileName)
{
ifstream in(fileName);
if (in.fail())
{
cout << "Error, bad input file.";
}
string line = "";
int wordTotal = 0;
while (getline(in, line))
{
istringstream ss(line);
string word = "";
while (ss >> word)
{
wordTotal++;
for (size_t i = 0, len = word.size(); i < len; i++)
{
if (word.at(i))
}
}
{
}
Puisqu'un 'std :: set' ne stocke pas de doublons, vous pouvez utiliser un' std :: set 'et insérer chaque caractère du mot dans l'ensemble. –
PaulMcKenzie