salve a tutti, devo risolvere questo problema per l universita:
"Calcola quante volte una parola, data in input dall'utente, è presente nel testo iniziale. Non distingue fra maiuscole e minuscole."
non riesco a risolvere questa precisa parte " non distingue fra minuscole e maiuscole" cosi ho pensato di usare tolower() ma mi da errore di compilazione....
questo è quello che ho fatto ( notare che ho incluso librerie che non servono per questa funzione, ma mi servono per altre funzioni non ancora fatte )
MAIN
FUNZIONIcodice:// Main #include <iostream> #include <fstream> #include <vector> #include <cstring> #include <string> #include <cstdlib> #include <ctype.h> #include "header.h" using namespace std; int main(){ ifstream in_data; // funzione che chiede // all'utente quale // file vuole aprire get_data(in_data); //funzione che conta quante volte //la parola immessa dall'utente compare cout<<"la parola precedentemente messa compare nel testo "<<WordCounter(in_data)<<" volte"<<endl; }
HEADERcodice://Funzioni #include <iostream> #include <fstream> #include <vector> #include <cstring> #include <string> #include <cstdlib> #include <ctype.h> #include "header.h" using namespace std; //funzione che chiede all'utente quale file aprire // e lo apre void get_data(ifstream& resultingStream) { string fileName; do { cout<<"Inserisci il nome del file contenente i dati: "; cin>>fileName; resultingStream.open(fileName.c_str()); } while (resultingStream.fail()); } // ************************************************************************ //funzione che chiede all'utente una parola // e conta quante ce ne sono nell file in input int WordCounter (ifstream& in_data){ string word; string otherword; int cont=0; vector<string>vectword; vector<string>vectotherword; cout<<"inserisci una parola per vedere quante volte compare nel testo"<<endl; cin>>word; // funzione della libreria <ctype.h> // che trasforma le lettere maiuscole // in lettere minuscole vectword.push_back(tolower(word)); while (in_data>>otherword){ // stessa funzione applicata // nella riga 40 vectotherword.push_back(tolower(otherword)); } for(int i=0; i < vectotherword.size(); i++){ if(vectword[0] == vectotherword[i]){ cont++; } } return cont; }
ringrazio di cuore tutti quelli che mi risponderanno, saluticodice:// Header #include <iostream> #include <fstream> #include <vector> #include <cstring> #include <string> #include <cstdlib> #include <ctype.h> using namespace std; // funzione che chiede all'utente // il nome del file e lo apre void get_data(ifstream& resultingStream); // funzione che chiede all'utente // di inserire una parola per // vedere quante volte compare // nel testo del file aperto // chiesto in precedenza int WordCounter (ifstream& in_data);![]()

Rispondi quotando