Zwrócenie długości stringa do zmiennej.

Zwrócenie długości stringa do zmiennej.
K7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 98
0

Witam, jak zwrócić długość stringa do zmiennej?

Mam taką strukturę:

Kopiuj
struct osoba {
	string imie;
	string nazwisko;
	int wiek;
	float skutecznosc;
	int wielkosc_imienia;
	int wielkosc_nazwiska;
	osoba *nast;
};

i chcę zwrócić długość imie do wielkosc_imienia:

Kopiuj
(pier->imie).length()=pier->wielkosc_imienia;

program się nie kompiluje

Kopiuj
error: lvalue required as left operand of assignment|
atmal
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 913
0

Ty próbujesz przypisać wielkosc_imienia do metody co nie ma sensu.

Wystarczy zamienić miejscami:

Kopiuj
pier->wielkosc_imienia = pier->imie.length();
Silv
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
0

Warto zwrócić uwagę, co oznacza błąd "lvalue required as left operand of assignment". "lvalue", mówiąc skrótowo: coś, do czego można przypisywać: http://en.cppreference.com/w/cpp/language/value_category

A modifiable lvalue may be used as the left-hand operand of the built-in assignment and compound assignment operators.

W przeciwieństwie do "rvalue", do której nie można przypisywać:

An rvalue can't be used as the left-hand operand of the built-in assignment or compound assignment operators.

PS.
Ze strony http://en.cppreference.com/w/cpp/language/operator_assignment:

The direct assignment operator expects a modifiable lvalue as its left operand and an rvalue expression or a braced-init-list (since C++11) as its right operand, and returns an lvalue identifying the left operand after modification.

  • Rejestracja: dni
  • Ostatnio: dni
0

Polecam nauczyć się angielskiego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.