Łączenie łańcuchów znaków

C++:
Łączenie łańcuchów znaków

How to: (Jak to zrobić?)

C++ oferuje kilka sposobów na łączenie łańcuchów znaków. Spójrzmy na przykłady:

#include <iostream>
#include <string>

int main() {
    // Używając operatora +
    std::string hello = "Hello, ";
    std::string world = "World!";
    std::string greeting = hello + world;
    std::cout << greeting << std::endl; // Output: Hello, World!

    // Używając metody append()
    std::string name = "Jan";
    std::string welcome = "Witaj, ";
    welcome.append(name);
    std::cout << welcome << std::endl; // Output: Witaj, Jan

    // Używając stringstream
    #include <sstream>
    std::stringstream ss;
    ss << hello << world;
    std::cout << ss.str() << std::endl; // Output: Hello, World!
    
    return 0;
}

Deep Dive (Głebokie zanurzenie)

Łączenie łańcuchów znaków, czyli konkatenacja, jest od dawna w C++. W wersjach przed C++11, często używano char arrays i funkcji strcat, ale były uciążliwe i mniej bezpieczne. Od C++11 mamy std::string, co ułatwia życie.

Alternatywnie, używamy std::stringstream do skomplikowanego składania tekstu, ale to może być wolniejsze. Pamiętajcie też o operator+=, gdybyście chcieli do istniejącego łańcucha dodać coś na końcu.

Z pod kątem implementacji, operator + tworzy nowy łańcuch, podczas gdy append() i operator+= modyfikują istniejący, co jest zwykle wydajniejsze.

See Also (Zobacz również)