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

Dlaczego zmienna[i] == '\0' działa?

Object Storage Arubacloud
0 głosów
121 wizyt
pytanie zadane 27 czerwca 2021 w C i C++ przez Clemontos Nowicjusz (160 p.)

Dzień dobry,

Zacząłem uczyć się c++ korzystają z kursu Mirosława.
Próbowałem wykonać zadanie z rozróżnianiem imion męskich a żeńskich. Po kilku próbach udało mi się go wykonać, lecz zastanawiam się dlaczego nie wywaliło mi kodu. Skoro ' ' używa się do znaków, to dlaczego nie wywaliło mi kody gdy napisałem " if (imie[i] == '\0') ". Poprosiłbym o wyjaśnienie : ).

Kod oczywiście działa poprawnie.

Kod:

#include <iostream>

using namespace std;

int main()
{
    string imie;
    int i=0;


    cout << "Podaj imie: "; cin >> imie;

    while (true)
    {
       if (imie[i] == '\0')
            break;
       i++;
    }
    i--;
    if (imie[i]== 'a')
        cout << "Imie jest zenskie" << endl;
    else
        cout << "Imie jest meskie" << endl;

    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 27 czerwca 2021 przez adrian17 Ekspert (345,160 p.)
Bo '\0' to jest znak (o reprezentacji liczbowej 0), tak samo jak '\n' to jest znak (nowa linia, reprezentacja liczbowa 10). A z definicji string[string.size()] == 0, dlatego ta pętla działa.

Inna sprawa że ta pętla nie ma wiele sensu bo jest kompletnie niepotrzebna - nie potrzebujesz pętli specjalnie żeby znaleźć ostatni znak stringa. Znasz rozmiar stringa używając .size(), więc wystarczy zaindeksować [imie.size()-1]. Albo jeszcze bardziej bezpośrednio, po prostu wyciągnąć ostatni znak używając imie.back().

Podobne pytania

0 głosów
2 odpowiedzi 144 wizyt
0 głosów
2 odpowiedzi 244 wizyt
0 głosów
1 odpowiedź 226 wizyt
pytanie zadane 8 kwietnia 2016 w HTML i CSS przez Paweł123 Nałogowiec (33,500 p.)

92,624 zapytań

141,482 odpowiedzi

319,822 komentarzy

62,005 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!

...