Samenvoegen van strings

C++:
Samenvoegen van strings

Hoe te:

In C++ hebben we een paar manieren om strings aan elkaar te plakken. Hier is een voorbeeld met std::string en de plus (+) operator:

#include <iostream>
#include <string>

int main() {
    std::string hello = "Hallo, ";
    std::string world = "Wereld!";
    
    std::string groet = hello + world;
    
    std::cout << groet << std::endl; // Uitvoer: Hallo, Wereld!
    return 0;
}

Snel en simpel, niet? Maar, we kunnen ook append() gebruiken:

#include <iostream>
#include <string>

int main() {
    std::string hello = "Hallo, ";
    hello.append("Wereld!");
    
    std::cout << hello << std::endl; // Uitvoer: Hallo, Wereld!
    return 0;
}

Of zelfs operator+= als je dat wilt:

#include <iostream>
#include <string>

int main() {
    std::string hello = "Hallo, ";
    hello += "Wereld!";
    
    std::cout << hello << std::endl; // Uitvoer: Hallo, Wereld!
    return 0;
}

Diepere Duik

Historisch gezien nam C++ het stokje over van C, dat karakterarrays en functies als strcat() voor stringverwerking gebruikte. Het was rommeliger en foutgevoeliger.

Modern C++ heeft de situatie verbeterd met std::string. Het is veiliger, gemakkelijker te lezen en biedt je opties. Als std::string niet jouw ding is, is er std::stringstream of zelfs std::format (vanaf C++20) voor de liefhebbers van formattering.

Onder de motorkap houdt het concatenaten van strings geheugentoewijzing en kopiëren in. Als dit onzorgvuldig gedaan wordt, kan het de prestaties van je programma zwaar treffen. Slimme pointers en move-semantiek verlichten hier wat van de pijn.

Laten we ook de alternatieven niet vergeten - bibliotheken zoals Boost, of het omgaan met UTF-8 met std::string_view voor zero-copy operaties op modern C++.

Zie Ook