The std::string type stores and combines text.

string concatenation The `+` operator can join two `std::string` values into a new string.

Strings

firstName
strings.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <string>

int main() {
    std::string firstName = "Ada";
    std::string greeting = "Hello, " + firstName + "!";
    int length = greeting.size();

    std::cout << "greeting=" << greeting << std::endl;
    std::cout << "length=" << length << std::endl;
    return 0;
}
#include <iostream>
#include <string>

int main() {
    std::string firstName = "Grace";
    std::string greeting = "Hello, " + firstName + "!";
    int length = greeting.size();

    std::cout << "greeting=" << greeting << std::endl;
    std::cout << "length=" << length << std::endl;
    return 0;
}
#include <iostream>
#include <string>

int main() {
    std::string firstName = "Bjarne";
    std::string greeting = "Hello, " + firstName + "!";
    int length = greeting.size();

    std::cout << "greeting=" << greeting << std::endl;
    std::cout << "length=" << length << std::endl;
    return 0;
}
  1. firstName ← Ada, greeting ← Hello, Ada!, length ← 11

    4int main() {5    std::string firstName→ Ada = "Ada"; //@firstName="Grace", "Bjarne"6    std::string greeting→ Hello, Ada! = "Hello, " + firstNameAda + "!";7    int length→ 11 = greetingHello, Ada!.size();89    std::cout << "greeting=" << greetingHello, Ada! << std::endl;10    std::cout << "length=" << length11 << std::endl;11    return 0;12}
    outputgreeting=Hello, Ada!
    length=11
  1. firstName ← Grace, greeting ← Hello, Grace!, length ← 13

    4int main() {5    std::string firstName→ Grace = "Grace";6    std::string greeting→ Hello, Grace! = "Hello, " + firstNameGrace + "!";7    int length→ 13 = greetingHello, Grace!.size();89    std::cout << "greeting=" << greetingHello, Grace! << std::endl;10    std::cout << "length=" << length13 << std::endl;11    return 0;12}
    outputgreeting=Hello, Grace!
    length=13
  1. firstName ← Bjarne, greeting ← Hello, Bjarne!, length ← 14

    4int main() {5    std::string firstName→ Bjarne = "Bjarne";6    std::string greeting→ Hello, Bjarne! = "Hello, " + firstNameBjarne + "!";7    int length→ 14 = greetingHello, Bjarne!.size();89    std::cout << "greeting=" << greetingHello, Bjarne! << std::endl;10    std::cout << "length=" << length14 << std::endl;11    return 0;12}
    outputgreeting=Hello, Bjarne!
    length=14

Follow the String

  1. firstName starts as Ada.
  2. The greeting becomes Hello, Ada!.
  3. length counts the greeting characters.
  4. The default length is 11.
  5. The program prints greeting=Hello, Ada! and length=11. | firstName | greeting | length | | --- | --- | --- | | Ada | Hello, Ada! | 11 | | Grace | Hello, Grace! | 13 | | Bjarne | Hello, Bjarne! | 14 |

Exercise: strings.cpp

Reproduce length=11, then use firstName Grace and Bjarne to predict each greeting and length.