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

Porównywanie charów

Object Storage Arubacloud
0 głosów
993 wizyt
pytanie zadane 25 stycznia 2017 w C i C++ przez Akiro Bywalec (2,910 p.)
void kryteria1(Trasy* tab, int k)
{
    char panstwo[15];

    cout << "Podaj kraj, w ktorym chcesz wyszukac trasy: ";
    cin >> panstwo;
    cout << "--------------------" << endl;

    for (int y=0; y<=k; y++)
        {
            if (tab[y].kraj==panstwo)
            {
                cout << "Znaleziono takie miejsce w bazie, numer pozycji: " << y+1 << endl;
                cout << "Jest to: ";
                cout << tab[y].kraj << endl;
                cout << tab[y].miasto << endl;
                cout << tab[y].stopien_trudnosci<< endl;
                cout << tab[y].dlugosc_trasy << "[m]"<<  endl;
            }
        }

}

Mam tutaj kawałek funkcji, problem polega na tym, że gdy podaje jakies panstwo zgodne z panstwem znajdującym sie w strukturze to if i tak się nie wykonuje. Czyli caly problem jest w porówywaniu tych łańcuchów:

if (tab[y].kraj==panstwo)

Jakieś sugestie?

1 odpowiedź

+1 głos
odpowiedź 25 stycznia 2017 przez draghan VIP (106,230 p.)
wybrane 25 stycznia 2017 przez Akiro
 
Najlepsza

Zmienna panstwo jest tablicą znaków, więc porównując w sposób:

if(a == panstwo)

każesz kompilatorowi przyrównać wartość a oraz adres zmiennej panstwo (nazwa tablicy jest jednocześnie adresem jej elementu o indeksie 0).

Możesz bez problemu samodzielnie napisać funkcję, która będzie iterowała po każdym elemencie łańcucha i sprawdzała zgodność ze wzorcem.

W bibliotece standardowej C istnieje również funkcja do porównywania łańcuchów - strcmp.

komentarz 25 stycznia 2017 przez Akiro Bywalec (2,910 p.)

Używałem strcmp ale nie chciało zadziałać, wpisywałem to o: 

 if (strcmp(tab[y].kraj,panstwo)==0) ... 

I to też coś nie chciało zadziałać. 

komentarz 25 stycznia 2017 przez draghan VIP (106,230 p.)

I to też coś nie chciało zadziałać.

Co to znaczy "coś nie chciało zadziałać"?

komentarz 25 stycznia 2017 przez Akiro Bywalec (2,910 p.)
Nie chciało bo zapomniałem dodać biblioteki, dzięki :)
1
komentarz 25 stycznia 2017 przez draghan VIP (106,230 p.)
Ach, no tak. To mogło powodować problemy przy kompilacji. ;D

Na zdrowie. :)

Podobne pytania

0 głosów
1 odpowiedź 292 wizyt
pytanie zadane 17 grudnia 2022 w C i C++ przez Stahious Nowicjusz (150 p.)
0 głosów
1 odpowiedź 107 wizyt
pytanie zadane 19 stycznia 2020 w C i C++ przez kacper1445 Gaduła (4,880 p.)
0 głosów
1 odpowiedź 759 wizyt

92,618 zapytań

141,467 odpowiedzi

319,785 komentarzy

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

...