abq0 Napisano Czerwiec 19, 2013 Zgłoś Udostępnij Napisano Czerwiec 19, 2013 #include <iostream> using namespace std; int main() { string tekst = "ala"; string tablica[17]; tablica[0] = "a"; if(tablica[0] == tekst[0]){ cout << "Test"; } system("PAUSE"); return 0; } Problem: W 8 linijce, komplikator mówi, że mam zły typ danych, czy coś. Wiem, że coś z rodzajami zmiennych, niestety nie wiem, co robię źlę. Proszę o pomoc, w nakierowaniu mnie. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
piomek Napisano Czerwiec 19, 2013 Zgłoś Udostępnij Napisano Czerwiec 19, 2013 Możesz przybliżyć cel poniższej linki? Kompletnie nie rozumiem o co chodzi. if(tablica[0] == tekst[0]){ cout <std::basic_string::operator[] [with _CharT = char, _Traits = std::char_traits, _Alloc = std::allocator](0u)' Pierwszy błąd to niepoprawny operator << zaraz na początku. cout <std:: ... zamień na cout << std:: ... Następnie skoro użyłeś instrukcji using namespace std to w powyższej linijce usuń wszystkie std::. Brakuje także zakończenia bloku i instrukcji (cout). //edit: Post jest przestarzały i niezgodny z obecną forma pytania Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
piomek Napisano Czerwiec 20, 2013 Zgłoś Udostępnij Napisano Czerwiec 20, 2013 Pomóc może zamiana tych linijek: string tablica[17]; tablica[0] = "a"; Na takie (aby potem nie było problemu z porównaniem), ale można używać tylko pojedynczych znaków: char tablica[17]; tablica[0] = 'a'; Aby działało bez zamiany typu, to w porównaniu tablica[0] == tekst[0] musiałbyś rzutować tekst[0] na typ string. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
iglax Napisano Czerwiec 20, 2013 Zgłoś Udostępnij Napisano Czerwiec 20, 2013 Nie 'komplikator' a kompilator, nie 'rodzaje zmiennych' a typy zmiennych. W c++ stringi są przechowywane jako tablica char'ów, nie da się porównywać w c++ stringa z char'em. W Twoim if'ie właśnie to robisz: if(tablica[0] == tekst[0]) to tak naprawdę : if(string == char) więc rozwiązać Twój problem można na 2 sposoby: porównać 2 char'y w taki sposób : if(tablica[0][0] == tekst[0]) lub zmienić typ zmiennej 'tablica' na char string tablica[17]; tablica[0] = 'a'; Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.