Liczba liter w słowie

0

Witam miałem do zrobienia 2 zadania z czego z jednym mam problem.

Pierwsze zadanie:

Napisz program który wczyta 3 wyrazy z klawiatury a następnie zapisze je w pliku tekstowym w osobnych linijkach w odwrotnej kolejności (3 wyraz, 2 wyraz, 1 wyraz)

A zrobiłem to tak:

#include<iostream>
#include<fstream>
using namespace std;

string wyraz, wyraz1, wyraz2;

int main()

{
	
	cout<<"Podaj pierwszy wyraz: "; cin>>wyraz;
	cout<<"Podaj drugi wyraz: "; cin>>wyraz1;
	cout<<"Podaj trzeci wyraz: "; cin>>wyraz2;	


fstream plik;
plik.open("tekst.txt", ios::out);

plik<<wyraz2<<endl;
plik<<wyraz1<<endl;
plik<<wyraz<<endl;

plik.close();

return 0;	
}

Natomiast tutaj drugie zadanie z którym mam problem (też dotyczące zapisu w pliku tekstowym)

Napisz program który wczyta wyraz z klawiatury a następnie wyświetli na monitorze liczbę literek "a" w tym wyrazie. Wynik niech zapisze w pliku tekstowym.


Nie wiem kompletnie jak to zrobić. Czy mógłby mi ktoś pokazać i wytłumaczyć?

dodanie znacznika <quote> - @furious programming

1

jako ze wczytywac i zapisywac stringi juz umiesz to jedyne czego ci brakuje to policzenie wystapien 'a' w wyrazie, mozesz to zrobic np tak:

	int licznik = 0;
	for (string::iterator it = wyraz.begin(), end = wyraz.end(); it != end; ++it)
	{
	   if(*it == 'a')
	   {
	   		licznik++;
	   }
	}
	cout << licznik;
1

Poniżej alternatywne rozwiązanie obliczające ilość liter "a" w wyrazie, zawierające same podstawy:

#include<iostream>
using namespace std;

int main()
{
    string wyraz;
    int licznik = 0;

    cin >> wyraz;

    for(int i=0; i<wyraz.length(); i++)
       if (wyraz[i] == 'a') licznik++;

    cout << licznik;
}
3

I normalne rozwiązanie:

std::count(std::begin(s), std::end(s), 'a');
0

Jak to się mówi... "Pamiętaj dziecko tak nie rób" :-)
No to może jeszcze "nienormalne rozwiązanie":

unsigned count_ltr(char * str, char ltr)
{
    return (ltr == *str) ? count_ltr(++str, ltr) + 1 :
        (*str) ? count_ltr(++str, ltr) : 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1