• 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.

VPS Starter Arubacloud
0 głosów
1,270 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ź 385 wizyt
pytanie zadane 4 lipca 2021 w C i C++ przez tonn204 Mądrala (7,470 p.)
0 głosów
2 odpowiedzi 211 wizyt
pytanie zadane 3 września 2018 w PHP przez BetBet Użytkownik (550 p.)
0 głosów
2 odpowiedzi 1,156 wizyt
pytanie zadane 13 grudnia 2016 w PHP przez ThePatrykOOO Dyskutant (8,400 p.)

93,006 zapytań

141,972 odpowiedzi

321,254 komentarzy

62,345 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

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...