Upload files to "file"
This commit is contained in:
parent
46041ffbd2
commit
e1767fc2d7
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
AUTORE: Manuel Vichi
|
||||||
|
Scrivere una funzione che, ricevuti in ingresso un nome di file e una parola S, restituisca il numero di occorrenze di S all'interno del file oppure -1 in caso di errore nella gestione del file. La funzione opera sotto le seguenti condizioni: una parola è una sequenza di caratteri priva di whitespace; un file è composto da una sequenza di parole separate da whitespace; la ricerca delle occorrenze è di tipo case insensitive.
|
||||||
|
*/
|
||||||
|
#include <iostream>
|
||||||
|
#include <cstring>
|
||||||
|
#include <cctype>
|
||||||
|
using namespace std;
|
||||||
|
int searchWord(const char * fileName, const char * word) {
|
||||||
|
FILE* file = fopen(fileName,"r");
|
||||||
|
unsigned occorrenze = 0;
|
||||||
|
if (file != NULL) {
|
||||||
|
char buffer[256];
|
||||||
|
char wordModified[256];
|
||||||
|
for (size_t i = 0; i < strlen(word); i++) {
|
||||||
|
if (!isupper(word[i])) {
|
||||||
|
wordModified[i] = toupper(word[i]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
wordModified[i] = word[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while(fgets(buffer,sizeof(buffer),file)) {
|
||||||
|
for (size_t i = 0; buffer[i] != '\0'; i++) {
|
||||||
|
if (isalpha(buffer[i]) && !isupper(buffer[i])) {
|
||||||
|
buffer[i] = toupper(buffer[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fclose(file);
|
||||||
|
return occorrenze;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
perror("Errore durante l'apertura del file");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
int main(void) {
|
||||||
|
cout << "Occorrenze: " << searchWord("occorrenze.txt","parola") << endl;
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue