• 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
956 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ź 241 wizyt
pytanie zadane 4 lipca 2021 w C i C++ przez tonn204 Mądrala (7,440 p.)
0 głosów
2 odpowiedzi 151 wizyt
pytanie zadane 3 września 2018 w PHP przez BetBet Użytkownik (550 p.)
0 głosów
2 odpowiedzi 963 wizyt
pytanie zadane 13 grudnia 2016 w PHP przez ThePatrykOOO Dyskutant (8,380 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...