Pe prima linie a fişierului text alfa.txt, se găseşte o succesiune de cel puțin două şi cel mult 200 de caractere, caractere care pot fi doar litere mici. Scrieți un program care citeşte de la tastatură un număr natural n (0<=n<=100) şi stabileşte dacă există în fişier vreo literă ce apare de exact n ori. Programul afişează pe ecran mesajul „da” în cazul în care există cel puțin o literă cu proprietatea menționată şi mesajul „nu” în caz contrar. 3
- Citim textul din fișierul alfa.txt și îl stocăm într-un șir de caractere.
- Parcurgem șirul și numărăm de câte ori apare fiecare literă mică. Pentru a face acest lucru, putem folosi un vector de frecvențe, unde frecvența pentru fiecare literă este incrementată atunci când se găsește în șir.
- Verificăm dacă există o literă care apare de exact n ori și afișăm „da” dacă există sau „nu” în caz contrar.
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main() {
char text[201];
int freq[26] = {0}; // initializam vectorul de frecvente cu 0
int n;
bool found = false;
// Citim textul din fisier
ifstream fin(„alfa.txt”);
fin.getline(text, 201);
fin.close();
// Numaram frecventa fiecarei litere din text
int len = strlen(text);
for (int i = 0; i < len; i++) {
if (text[i] >= ‘a’ && text[i] <= ‘z’) { // verificam daca e litera mica
freq[text[i] – ‘a’]++; // incrementam frecventa literei gasite
}
}
// Citim numarul n de la tastatura
cout << „Introduceti un numar natural n (0 <= n <= 100): „;
cin >> n;
// Cautam daca exista o litera cu frecventa n in vectorul de frecvente
for (int i = 0; i < 26; i++) {
if (freq[i] == n) {
found = true;
break;
}
}
// Afisam mesajul corespunzator
if (found) {
cout << „da\n”;
} else {
cout << „nu\n”;
}
return 0;
}
Acest program citește textul din fișierul alfa.txt folosind ifstream
, numără frecvența fiecărei litere din șirul de caractere și apoi caută o literă care apare de exact n ori. Mesajul „da” sau „nu” este afișat pe ecran în funcție de rezultatul căutării.