Skocz do zawartości

Co robie źlę?


Recommended Posts

Napisano
#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.

Napisano

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

Napisano

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.

Napisano

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';

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...