Liczba wystąpień liter w stringu

Liczba wystąpień liter w stringu
DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 311
0

Potrzebuje pomocy z liczeniem wystąpień danych liter w stringu.

jezeli x = "TestString", y = "Tt"
to output powinien byc

Kopiuj
T: 1
t: 2

Poniżej jest kod, nie wiem co źle robię.

Kopiuj
void counter(string x, string y)
{

    int signs[100];
    int amount = 0;

    for (int i = 0; i < y.length(); i++)
    {

        signs[i] = y[i];
        cout << signs[i];
        for (int j = 0; j < x.length(); j++)
        {
            if (x[i] == y[i])
            {
                amount++;
            }
        }
        cout << y[i] << ":" << amount << endl;
    }
}

    int main()
    {

        string x, y;
        cout << "Wprowadz pierwszy napis: " << endl;
        cin >> x;
        cout << "Wprowadz drugi napis: " << endl;
        cin >> y;

        counter(x, y);
        return 0;
    }
kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
0

Zacznijmy od definiowania funkcji. Piszesz, że chcesz zliczać wystąpienia liter w stringu. Czemu funkcja rzekomo za to odpowiedzialna przyjmuje 2 stringi i nic nie zwraca?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
void counter(const string &x,const string &y)
{
    int signs[256]={0};
    for(auto ch:y)
    {
        auto fnd=find(begin(x),end(x),ch);
        if(fnd==end(x)) coontinue;
        ++signs[fnd-begin(x)];
    }
    for(int i=0;i<x.size();++i) if(signs[i]) cout<<x[i]<<": "<<signs[i]<<endl;
}
06
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2440
0
Kopiuj
void counter(const std::string &x, const std::string &y)
{
    int ch_freq[256] = { 0 };
    
    for(auto ch: x) {
        ++ch_freq[static_cast<unsigned char>(ch)];
    }
    
    for(auto ch: y) {
        std::cout << ch << ": " << ch_freq[static_cast<unsigned char>(ch)] << '\n';
    }
}
vpiotr
  • Rejestracja: dni
  • Ostatnio: dni
0
Descendant napisał(a):

Poniżej jest kod, nie wiem co źle robię.

Ja też nie wiem co robisz źle. Może podaj wynik z tego programu to się razem zastanowimy?

DE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 311
0

Gadacie jakieś głupoty, a jedynym błędem w programie było x[i] zamiast x[j]

PerlMonk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa 🐪
  • Postów: 1719
1
Descendant napisał(a):

Gadacie jakieś głupoty, a jedynym błędem w programie było x[i] zamiast x[j]

Jeśli uważasz, że ktoś gada głupoty, to możesz poszukać innego forum, na którym ludzie gadają mądre rzeczy. To ty przyszedłeś po pomoc :) .

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0
Descendant napisał(a):

Gadacie jakieś głupoty, a jedynym błędem w programie było x[i] zamiast x[j]

Doprawdy?
Ja widzę jeszcze dwa na pierwszy rzut oka.
Oraz kilka natury - wywal a nadal będzie działać.
Zauważ że w naszych głupotach nawet nie ma szans popełnienia podobnych do twoich głupot.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.