• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C++ Czy użytkownik wpisał wyraz zawierający dokładnie 4 znaki a.

Object Storage Arubacloud
0 głosów
984 wizyt
pytanie zadane 4 grudnia 2016 w C i C++ przez xxkondzioxx15 Obywatel (1,440 p.)
Czy użytkownik wpisał wyraz zawierający dokładnie 4 znaki a. Proszę o pomoc! Wiem, że trzeba użyć if ale nie wiem jak.
komentarz 5 grudnia 2016 przez criss Mędrzec (172,590 p.)
bool check(const std::string & str)
{
   size_t count = 0;
   for(auto c : str)
   {
      if(c == 'a')
         count++;
      if(count > 4)
         return false;
   }
   return count == 4;
}

 

3 odpowiedzi

0 głosów
odpowiedź 4 grudnia 2016 przez Avernis Nałogowiec (27,400 p.)
std::string x;

if(x.size() == 4) //*.size() zwraca rozmiar std::string, czyli ilość znaków
{

}

 

komentarz 4 grudnia 2016 przez fenq80 Bywalec (2,940 p.)
A jak użytkownik wpisze np "eeee" twój warunek się wykona a nie są to 4 znaki a. Ja raczej użyłbym funkcji find() szukając znak 'a' gdy go znajdzie zwiększyć licznik i znów przeszukiwać ten wyraz od miejsca w którym ostatnio znaleziono 'a'. I tak do końca stringa. I na końcu sprawdzić licznik
komentarz 4 grudnia 2016 przez Avernis Nałogowiec (27,400 p.)

a, 4 znaki a, ok

std::string x;
 
if(x.size() == 4) //*.size() zwraca rozmiar std::string, czyli ilość znaków
{
    int y = 0;
    for(int i = 0; i < 4; ++i)
    {
        if(x[i] == 'a')
        {
             y++;
        }
    }
    if(y == 4) //jeśli są 4 znaki a
    {
    }
    else //w przeciwnym razie
    {
    }
}

 

komentarz 4 grudnia 2016 przez xxkondzioxx15 Obywatel (1,440 p.)
ten kod mi nie działa nie używaj tego std:
komentarz 4 grudnia 2016 przez fenq80 Bywalec (2,940 p.)
Nie no w treści nie było napisane ze wyraz ma mieć dokładnie 4 znaki.
komentarz 4 grudnia 2016 przez Avernis Nałogowiec (27,400 p.)
Jeżeli std::string ci nie działa to coś masz źle w kompilatorze, bo std::string to to samo co string. Nawet Pan Mirosław o tym mówił w 1 odcinku
komentarz 4 grudnia 2016 przez xxkondzioxx15 Obywatel (1,440 p.)
działa
0 głosów
odpowiedź 4 grudnia 2016 przez Evelek Nałogowiec (28,960 p.)
    string zmienna;
    cin >> zmienna;
    cout << zmienna.size() << endl;

if(zmienna.size() == 4 )

 

komentarz 4 grudnia 2016 przez xxkondzioxx15 Obywatel (1,440 p.)
Nie rozumiem tego mógłbyś podać kod co by sprawdzał czy wyraz zawiera 4 znaki a?
0 głosów
odpowiedź 4 grudnia 2016 przez fenq80 Bywalec (2,940 p.)
Użyłbym funkcji find() szukając znak 'a' w podanym wyrazie gdy go znajdzie zwiększyć licznik i znów przeszukiwać ten wyraz od miejsca w którym ostatnio znaleziono 'a'. I tak do końca stringa. I na końcu sprawdzić licznik.  Jeśli wynosi 4 znaczy to że zmienna a wystąpiła 4 razy.                                       Drugi sposób : użyć pętli for(int i=0; i<słowo.size(); ++i)  if('a' == slowo[i])  licznik ++;
komentarz 4 grudnia 2016 przez xxkondzioxx15 Obywatel (1,440 p.)
nie znam żadnych funkcji jestem początkowy. Mam taki kod co mam źle?

 cout <<"Podaj litere:";
    cin >> litera;
       cout <<"Podaj litere:";
    cin >> litera;
    if(litera.size()== 4)
    {
        cout << "Wyraz zawiera 4 znaki a!";
    }
    else
    {
        cout << "Wyraz nie zawiera 4 liter a!";
    }
komentarz 4 grudnia 2016 przez fenq80 Bywalec (2,940 p.)
Sprawdzasz tylko czy rozmiar twojego wyrazu = 4.  Ale może być np taki "tawe"  i nie są to cztery znaki a.  Użyj funkcji for (int i=0; i<słowo. size() ;i++)  if(slowo[i]  == 'a')  licznikwystapien_a ++;      działa to tak ze sprawdzasz każda literę z podanego  słowa (funkcja size()  zwraca długość slowa)  i sprawdzasz czy jest to litera a jeśli tak zwiększysz licznik.  Na koncu licznik wynosi 4 znaczy to że w wyrazie było 4 razy a. Mam nadzieje ze pomogłem
komentarz 5 grudnia 2016 przez fenq80 Bywalec (2,940 p.)
#include <iostream>

using namespace std;

int main()
{
    string slowo;
    int LicznikWystapienA = 0;
    cin >> slowo;
    for(int i = 0; i<slowo.size();i++)//sprawdza po kolei kazda litere podanego slowa
    {
        if(slowo[i] == 'a')LicznikWystapienA++;
    }
    if(LicznikWystapienA == 4)cout<<"W podanym slowie litera a wystapila dokladnie 4 razy ";
    else cout<<"W podanym slowie cyfra a nie wystapila dokladnie 4 razy ";
    
    
    cin.get();
    cin.get();
    return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 254 wizyt
pytanie zadane 4 lipca 2021 w C i C++ przez tonn204 Mądrala (7,440 p.)
0 głosów
2 odpowiedzi 152 wizyt
pytanie zadane 3 września 2018 w PHP przez BetBet Użytkownik (550 p.)
0 głosów
2 odpowiedzi 987 wizyt
pytanie zadane 13 grudnia 2016 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...