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

# Skapa strängar

Man kan skapa instanser av klassen `string` på flera olika sätt. De vanligaste metoderna är att antingen skapa en tom instans eller så skapa en instans och initiera den direkt med en sträng:

    string variabelnamn1;
    string variabelnamn2 = "värde";

Den första deklarationen skapar en tom sträng medan den andra skapar en sträng med ett fördefinierat värde. En kopia av det fördefinierade värdet görs. Strängar kan även skapas som kopior av varandra, enligt följande:

    string S1 = "Bilbo";
    string S2 = S1;

Strängen `S2` är nu en kopia av `S1`, och all manipulering av `S2` påverkar inte `S1`. Ifall man vill skapa en ny sträng och fylla denna med ett antal av ett visst specifikt tecken kan detta även göras. För att skapa en sträng innehållande 10 A kan följande användas:

    string S ( 10, 'A' );

Ibland kan det vara användbart att kunna skapa en sträng av en del av en annan sträng. Man använder då ordet substräng. En substräng kan skapas genom att till konstruktorn för `string` ge som parametrar den ursprungliga strängen som man vill ha en substräng ur, indexet där man vill börja substrängen samt antalet tecken. Ett exempel på en substrängsinitiering:

    string S1 = "Hello world";
    string S2 ( S1, 6, 5 );  // starta från 'w' och kopiera fem tecken

Även då man initierar från en substräng görs en kopia av tecknen. I exemplet ovan har `S2` ingenting längre gemensamt med `S1` efter initierringen, annat än att den råkar innehålla delvis samma text som i `S1`.

## Längden av strängar

För att få reda på längden av en sträng kan man använda sig av metoderna `size()` eller `length()`. Båda ger samma värde, d.v.s. antalet tecken i strängen. T.ex.:

    #include <iostream>
    #include <string>

    int main () {
      string S1 = "Hello world";
      string S2;

      // skriv ut strängens längd
      cout << "size()   : " << S1.size () << endl;
      cout << "length() : " << S1.length () << endl;
    }

Man kan alltså använda antingen `length()` eller `size()`. En tom sträng har alltid längden 0.

Förutgående | Hem | Nästa
Stränghantering | Upp | Accessera enskilda tecken