fork(1) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. string toLowercaseManual(const string& text) {
  7. string result = text;
  8. for (int i = 0; i < result.length(); ++i) { // Bucla for clasică
  9. if (result[i] >= 'A' && result[i] <= 'Z') {
  10. result[i] = result[i] + 32;
  11. }
  12. }
  13. return result;
  14. }
  15.  
  16. char findMostFrequentLowercase(const string& text) {
  17. int counts[26] = {0};
  18. for (int i = 0; i < text.length(); ++i) { // Bucla for clasică
  19. if (text[i] >= 'a' && text[i] <= 'z') {
  20. counts[text[i] - 'a']++;
  21. }
  22. }
  23.  
  24. char mostFrequentChar = 0;
  25. int maxCount = 0;
  26.  
  27. for (int i = 0; i < 26; ++i) {
  28. if (counts[i] > maxCount) {
  29. maxCount = counts[i];
  30. mostFrequentChar = 'a' + i;
  31. }
  32. }
  33.  
  34. return mostFrequentChar;
  35. }
  36.  
  37. int main() {
  38. string line;
  39. string allText;
  40.  
  41. cout << "Introduceti textul (liniile se termina cu EOF sau linie goala):\n";
  42. while (getline(cin, line)) {
  43. if (line.empty()) {
  44. break;
  45. }
  46. allText += toLowercaseManual(line);
  47. }
  48.  
  49. char mostFrequent = findMostFrequentLowercase(allText);
  50.  
  51. if (mostFrequent) {
  52. cout << "Litera mica cea mai frecventa este: " << mostFrequent << endl;
  53. } else {
  54. cout << "Nu au fost gasite litere mici." << endl;
  55. }
  56.  
  57. return 0;
  58. }
Success #stdin #stdout 0.01s 5284KB
stdin
TEXT CU LITERE MARI
ALTA LINIE CU MAJUSCULE
SI INCA UNA
folosim getline(cin, line) în interiorul unei bucle while.
stdout
Introduceti textul (liniile se termina cu EOF sau linie goala):
Litera mica cea mai frecventa este: i