Jump to content
Adrianek14

C/C++ Problem z przekazaniem char do funkcji

Recommended Posts

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

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 to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...