C++-manual
Förutgående | Kapitel 18. Stränghantering | Nästa

# Insättning av text

En vanlig operation då man hanterar strängar är att lägga till text i en sträng. De två möjligheterna här är att text läggs till på slutet av strängen eller någonstans mitt i.

Vi tittar först på hur text kan läggas till på slutet av en sträng. Man kan göra detta med metoden `append()` eller med operatorn `+=`. Båda ändrar strängen och lägger till den givna texten eller tecknet till slutet av strängen. Ett exempel på en funktion som konkatenerar två strängar med ett tomrum emellan:

    string fulltNamn (const string & Fornamn, const string & Efternamn) {
      string Namn = Fornamn;
      Namn += ' ';
      Namn += Efternamn;

      // ge tillbaka det fullständiga namnet
      return Namn;
    }

Här används operatorn `+=` för konkateneringen, men `append()` kunde lika väl ha använts. Vi kan konkatenera instanser av `string`, C-strängar och vanliga tecken (`char`).

Att lägga till text på annan plats i en sträng än på slutet görs med metoden `insert()`. Även denna finns i diverse olika varianter. Man kan sätta in var som helst i en sträng instanser av `string`, C-strängar, tecken, substrängar samt ett antal av samma tecken eller C-sträng. Ett exempel:

    #include <iostream>
    #include <string>

    int main () {
      string Namn = "Frodo Bagger";

      // lägg till initialen för mellannamnet
      string Initial = "T. ";
      Namn.insert ( 6, Initial );

      // sätt in i början av strängen
      Namn.insert ( 0, "Mr. " );

      cout << "Namnet är: " << Namn << endl;
    }

Körning av programmet ovan ger:

    % ./StringInsert
    Namnet är: Mr. Frodo T. Bagger
    %

## Addera strängar

Man kan förutom att direkt konkatenera och sätta in text i strängar även addera dem med hjälp av operatorn `+`. De strängar som används i additionen påverkas inte på något sätt. Ett exempel belyser hur detta fungerar:

    #include <iostream>
    #include <string>

    string fulltNamn (const string & Fornamn, const string & Efternamn) {

      // ge tillbaka det fullständiga namnet
      return Fornamn + " " + Efternamn;
    }

    int main () {
      string Namn = fulltNamn ( "Frodo", "Bagger" );
      string Text = "Fullständigt namn: " + Namn;

      cout << Text << endl;
    }

Vi kan alltså addera ihop flera olika strängar och stränkonstanter med operatorn `+` och sedan tilldela strängen till en annan variabel. Denna funktionalitet är praktisk då man t.ex. vill skapa olika meddelanden som skall visas åt användaren.

Förutgående | Hem | Nästa
Tilldelning och jämförelse | Upp | Söka text i strängar