Rozwiązane

Napisz program w C++, który:
a) zamieni wszystkie małe litery (tylko angielskie) na duże
b) każdą literkę "a" zamieni na "*"
c) policzy ile było liter "a" i zapisze do pliku
d) umożliwi podanie na jaki znak zamienić "a"

Za dobrą odpowiedź daje naj!



Odpowiedź :

REGNAD

Odpowiedź:

#include <iostream>

#include <algorithm>

#include <numeric>

#include <fstream>

#include <string>

void zad_a(std::string &word) {

   std::transform(word.begin(), word.end(), word.begin(), [](const char a) { return std::toupper(a); });

}

std::string zad_b(const std::string &word) {

   return std::accumulate(word.begin(), word.end(), std::string(), [](std::string a, char b) {

       if (b == 'a') {

           b = '*';

       }

       a += b;

       return a;

   });

}

void zad_c(const std::string &word) {

   std::ofstream ofstream("plikZliczajacy.txt");

   int counter = std::count(word.begin(), word.end(), 'a');

   ofstream << counter;

}

std::string zad_d(std::string word) {

   char znak;

   std::cout << "Podaj na jaki znak chcesz zmienic a w tym wyrazie\n";

   std::cin >> znak;

   return std::accumulate(word.begin(), word.end(), std::string(), [znak](std::string a, char b) {

       if (b == 'a') {

           b = znak;

       }

       a += b;

       return a;

   });

   

}

int main() {

   std::string word = "mama";

   zad_a(word);

   std::cout << word << std::endl;

   std::cout <<  zad_b("mama") << std::endl;

   zad_c("mama");

   std::string word2 = "tata";

   std::cout << zad_d(word2);

   

   return 0;

}

Wyjaśnienie: