Jak zazwyczaj umieścić sznurki w kodzie?
string str = "qaz123";
Można zrobić
str = str + " another string"
jest (teoretycznie, w praktyce może to być cokolwiek) odpowiednik
str += " another string"
Można użyć
str += 'a'
ponieważ jest przeciążony operator typ char.
można próbować zrobić:
str += 'a' + 'b'
Wypróbuj aplikację:
#include <typeinfo>
#include <iostream>
int main(void)
{
std::cout << typeid('a').name() << std::endl;
std::cout << typeid('a'+'b').name() << std::endl;
}
Wynik będzie wyglądać następująco:
c
i
co oznacza, że 'a'+'b'
ocenia do liczby całkowitej.
Teraz pytanie brzmi: jaki operator jest rzeczywiście wywoływany, gdy wykonujesz str += 'a'+'b'
.
Najprawdopodobniej wywoływany jest operator char
z wartością znaków 195
.
W moim systemie znak 195
to ├
. Co to jest na twoim?
Zdajesz sobie sprawę, że ' 'a' + 'b'' ocenia do liczby całkowitej, a nie' "AB" ', prawda? –
co to jest wartość początkowa 'str', którą robisz' str = str + 'a' + 'b'; ' –
@GrijeshChauhan: lub bardziej efektywnie,' (str + = 'a') + = 'b'; '; -) –