Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

Adrianek14

C/C++ Problem z przekazaniem char do funkcji

Polecane posty

Witam, mam problem z poniższym kodem (przedstawię urywek):


int wyluskanie (char studenci)
int main()
{
char studenci;

cin >> studenci;
wyluskanie (studenci);
//reszta kodu
}
int wyluskanie (char studenci)
{
for (int i=0; i<studenci.lenght(); i++);
//reszta kodu
}

Problem jest z "int wyluskanie (char studenci)", przy debugowaniu wywala mi taki błąd:

"error C2228: left of '.lenght' must have class/struct/union".

Ktoś wie dlaczego jest taki błąd? I jak go naprawić?

Link do komentarza
Udostępnij na innych stronach

char studenci;

Już na tym etapie robisz pierwszy błąd.

Char przechowuje jedynie pojedynczy znak, raczej potrzeba Ci tablicy tego typu.

studenci.lenght()

Tu jest kolejny błąd, a kompilator Ci o nim mówi wprost->left of '.lenght' must have class/struct/union". Zmienna typu char na pewno nie jest tutaj klasą, strukturą czy unią.

Porwałeś się trochę z motyką na słońce. Jak już poprawisz pierwszy błąd, to zalecam skorzystanie z funkcji "strlen" z biblioteki "string.h".

Link do komentarza
Udostępnij na innych stronach

Jeśli kod jest pisany w C++ to używamy struktur i rozwiązań z C++, a nie z C. Używanie char* to nie są podstawy C++, tylko C. char* jest wprowadzone w C++ tylko po to, by zachować zgodność wstecz i nie powinno się tego używać.

Link do komentarza
Udostępnij na innych stronach

Prawda jest taka, że nie zawsze to co daje nam C++ jest lepsze od tego co jest w C. Ja do dzisiaj używam tylko rzutowań w stylu C. Niekiedy też są takie momenty gdy niezbędna jest wiedza z czystego C, bo po prostu nie możemy użyć pewnych elementów języka C++ np. stringów.

A tak wracając do tematu to nie powinna być zmienna studenci zdefiniowana jako pusta tablica? A następnie sprawdzona jej długość poprzez funkcję strlen(). Bo jak dla mnie to deklaracja, która jest w tym kodzie pobierze tylko pierwszy znak z wejścia.

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...