C++/String: Różnice pomiędzy wersjami

Usunięte 457 bajtów ,  12 lat temu
wikitabela
(poprawki)
(wikitabela)
Jak widać, manipulacje obiektami <tt>string</tt> są intuicyjne. Oprócz wygodnych w stosowaniu operatorów, klasa string posiada jeszcze więcej metod.
 
<table{| weightclass="100%wikitable" border="0" cellspacing="3" cellpadding="6px" >
!Metoda
<tr><td><b>Metoda</b></td><td><b>Opis</b></td></tr>
!Opis
<tr><td><tt>empty()</tt></td><td>Zwraca wartość true jeżeli napis jest pusty.</td></tr>
|-
<tr><td><tt>size(),length()</tt></td><td>Zwraca ilość znaków w napisie.</td></tr>
|<tt>empty()</tt>
<tr><td><tt>at()</tt></td><td>Zwraca znak o podanym położeniu, podobnie jak operator [] z tym że ta metoda jest bezpieczniejsza, zapobiega wyjściu poza zakres.</td></tr>
<tr><td><tt>empty()</tt></td><td>|Zwraca wartość true jeżeli napis jest pusty.</td></tr>
<tr><td><tt>clear()</tt></td><td>Usuwa wszystkie znaki z napisu.</td></tr>
|-
<tr><td><tt>erase(...)</tt></td><td>clear() Usuwa wybrane znaki.</td></tr>
|<tt>size(),length()</tt>
<tr><td><tt>find(...)</tt></td><td>Znajduje podciąg w ciągu, są też bardziej rozbudowane funkcje tego typu.</td></tr>
|Zwraca ilość znaków w napisie.
<tr><td><tt>swap(...)</tt></td><td>Zamienia miejscami dwa stringi, a staje się b, a b staje się a.</td></tr>
|-
<tr><td><tt>substr(... )</tt></td><td>Zwraca podciąg na podstawie indeksu początkowego i długości podciągu.</td></tr>
|<tt>at()</tt>
<tr><td><tt>append(...)</tt></td><td>Dodaje zadany napis na końcu istniejącego ciągu.</td></tr>
<tr><td><tt>at()</tt></td><td>|Zwraca znak o podanym położeniu, podobnie jak operator [] z tym że ta metoda jest bezpieczniejsza, zapobiega wyjściu poza zakres.</td></tr>
<tr><td><tt>c_str()</tt></td><td>Zwraca napis w stylu języka C (stały wskaźnik typu <tt>const char*</tt>).</td></tr>
|-
|<tt>clear()</tt>
<tr><td><tt>clear()</tt></td><td>|Usuwa wszystkie znaki z napisu.</td></tr>
|-
|<tt>erase(...)</tt>
|Usuwa wybrane znaki.
|-
|<tt>find(...)</tt>
<tr><td><tt>find(...)</tt></td><td>|Znajduje podciąg w ciągu, są też bardziej rozbudowane funkcje tego typu.</td></tr>
|-
|<tt>swap(...)</tt>
<tr><td><tt>swap(...)</tt></td><td>|Zamienia miejscami dwa stringi, a staje się b, a b staje się a.</td></tr>
|-
|<tt>substr(...)</tt>
<tr><td><tt>substr(... )</tt></td><td>|Zwraca podciąg na podstawie indeksu początkowego i długości podciągu.</td></tr>
|-
|<tt>append(...)</tt>
<tr><td><tt>append(...)</tt></td><td>|Dodaje zadany napis na końcu istniejącego ciągu.</td></tr>
|-
|<tt>c_str()</tt>
<tr><td><tt>c_str()</tt></td><td>|Zwraca napis w stylu języka C (stały wskaźnik typu <tt>const char*</tt>).</td></tr>
</table>
 
Omówione dotychczas operatory i metody to tylko część dostępnych; wymienione zostały tylko te najczęściej używane. Teraz przedstawię różnice jakie występują między C a C++ w obsłudze napisów.
 
{|class="wikitable"
<table border="0" cellspacing="3" cellpadding="6px" >
!C
<tr><td><b>C</b></td><td><b>C++</b></td></tr>
!C++
<tr><td><tt>strcpy(a,b) </tt></td><td><tt> a = b</tt></td></tr>
|-
<tr><td><tt>strcmp(a,b) </tt></td><td><tt> a == b</tt></td></tr>
<tr><td>|<tt>strcatstrcpy(a,b) </tt></td><td><tt> a += b</tt></td></tr>
|<tt> a = b</tt>
<tr><td><tt>strlen(a) </tt></td><td><tt> a.size()</tt></td></tr>
|-
<tr><td><tt>strstr(a,b) </tt></td><td><tt> a.find(b)</tt></td></tr>
|<tt>strcmp(a,b)</tt>
</table>
|<tt> a == b</tt>
|-
|<tt>strcat(a,b)</tt>
|<tt> a += b</tt>
|-
|<tt>strlen(a)</tt>
|<tt> a.size()</tt>
|-
|<tt>strstr(a,b)</tt>
|<tt> a.find(b)</tt>
|}
 
<noinclude>
8268

edycji