cztery pytanka
Ostatnio zmodyfikowano 2013-05-28 22:41
NHFL Temat założony przez niniejszego użytkownika |
cztery pytanka » 2013-05-28 15:05:06 1) czy można powiedzieć że tablica znaków to jest zawsze c-string? 2) jakie są różnice w zmianie wartości wysłanej do funkcji przez referencje a jako wskaźnika w końcu efekt jest ten sam 3) czy jest jakaś funkcja albo metoda sprawdzająca ile elementów(liczb) jest w tablicy? cos w stylu length() tylko ze to jest do tablicy znakow(string) a nie liczb 4) w jaki sposób można odebrać w funkcji jako wskaźnik string który wczytujemy z klawiatury z funkcji main(zdaje sie ze sie nie da mozna odebrac string tylko jako char oraz tylko wtedy gdy definicja stringa wyglada tak: char tekst[rozmiar] = "Total War to zaprawde wybitna seria strategiczna.";
|
|
kubawal |
» 2013-05-28 15:13:29 1) O ile ma '\0' na końcu 2) Zależy od potrzeby. 3) Nie. Trzeba sobie ten rozmiar zapisać, lub użyć std::array, lub co do cStringów, strlen() 4) Używać std::string int main() { char cstr[ 50 ]; JakasFunkcja( std::string( cstr ) );
/edit: @pekfos ej no, nie przedrzeźniaj :) Napisałeś te edity w tym samym czasie co ja :D. I prawie w nich to samo 0_o |
|
pekfos |
» 2013-05-28 15:13:34 1) czy można powiedzieć że tablica znaków to jest zawsze c-string? |
O ile jest zakończona zerem, to tak, jednak to nie tablica jest c-stringiem, lecz jej zawartość. 2) jakie są różnice w zmianie wartości wysłanej do funkcji przez referencje a jako wskaźnika w końcu efekt jest ten sam |
Referencji używa się tak samo jak zwykłej zmiennej, przez co jest to wygodniejsze od zwykłych wskaźników, jednak do jako referencji nie można podać NULLa. 3) czy jest jakaś funkcja albo metoda sprawdzająca ile elementów(liczb) jest w tablicy? cos w stylu length() tylko ze to jest do tablicy znakow(string) a nie liczb |
Zależy od tablicy. Jeśli jest zaalokowana dynamicznie, to nie da się (przenośnie) określić jej rozmiarów. W przypadku tablic na stosie, sizeof zwraca ich rozmiar, a z tego łatwo wyliczyć, ile jest elementów. Btw: std::string to nie jest tablica. Jeżeli w tablicy jest np c-string, to rozmiar tego c-stringa (c-stringa, a nie tablicy) można określić odpowiednią funkcją (tu strlen(), wcslen()) 4) w jaki sposób można odebrać w funkcji [..] |
Zależy co pobierasz w funkcji i co do niej podajesz. Jeśli typ się zgadza, to możesz przekazać prawie wszystko. @pekfos ej no, nie przedrzeźniaj :) Napisałeś te edity w tym samym czasie co ja :D. I prawie w nich to samo 0_o |
Znowu kogoś przedrzeźniam? :/ Btw, ładne "prawie" :P |
|
NHFL Temat założony przez niniejszego użytkownika |
» 2013-05-28 18:37:36 4) to jak odebrać jako wskaźnik w funkcji klasę string gdy w funkcji main mam cos takiego: string tekst; cout << "Podaj tekst: "; cin >> tekst;
jak ma wyglądać wywołanie takiej funkcji? ps: dzięki za odpowiedzi do 3 poprzednich pytań |
|
pekfos |
» 2013-05-28 18:42:01 Jaki wskaźnik? std::string* czy const char*? f1( & tekst ); f2( tekst.c_str() );
|
|
NHFL Temat założony przez niniejszego użytkownika |
» 2013-05-28 22:41:16 dzięki dobrze wiedzieć i to i to a więc closed ;) |
|
« 1 » |