abq0 Napisano Czerwiec 19, 2013 Zgłoś 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
piomek Napisano Czerwiec 19, 2013 Zgłoś 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
piomek Napisano Czerwiec 20, 2013 Zgłoś 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
iglax Napisano Czerwiec 20, 2013 Zgłoś 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
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.