Задача

6 /14


(C++) Сложение (конкатенация) строк и символов

Теория Нажмите, чтобы прочитать/скрыть


Конкатенация (сложение) строк

Для объединения двух строк в C++ можно использовать оператор + или метод append().
 

string str1 = "Hello";
string str2 = "world!";
string result1 = str1 + ", " + str2; // используя оператор +
string result2 = str1.append(", ").append(str2); // используя метод append()

// Результат: "Hello, world!"  


Обратите внимание, что метод append() изменяет исходную строку, добавляя к ней другую строку.
 

Сложение символов

В C++, символы типа char и строки типа string имеют разные поведения и свойства. Сложение символов напрямую не приведет к конкатенации, так как символы интерпретируются как числа (ASCII коды) и с этими числами будут выполняться арифметические операции.

Если мы бы написали char1 + char2 + char3, то это привело бы к сложению ASCII кодов символов, а не к конкатенации символов. Например, символ 'H' имеет ASCII код 72, 'e' - 101, и 'y' - 121. Таким образом, результат выражения char1 + char2 + char3 был бы 294, что представляет собой символ, не имеющий понятного отображения.

Чтобы правильно конкатенировать символы в строку, нам нужно использовать конструктор string(1, char1), который используется, чтобы создать временную строку из одного символа char1. Затем мы используем оператор + для конкатенации строк и символов.
 

Пример программы формирования строки из символов
#include <iostream>
#include <string>

using namespace std;

int main() {
    char char1 = 'H';
    char char2 = 'e';
    char char3 = 'y';

    string result = string(1, char1) + char2 + char3;

    cout << "Результат: " << result << endl;

    return 0;
}


Тот же результат можно получить записав немного по-другому:

 ...
    string result = ("" + char1) + char2 + char3;
 ...


Пояснение:

  1. "" + char1 - Здесь пустая строка "" складывается со значением символа char1. Такое сложение возможно, так как пустая строка является строкой, а char1 представляет собой символ. Таким образом, результат этой операции будет строка, состоящая из одного символа.

  2. ("" + char1) + char2 - К результату предыдущей операции (строка из одного символа) добавляется символ char2, таким образом, получается строка, состоящая из двух символов.

  3. ((char1 + char2) + char3) - К результату предыдущей операции добавляется символ char3, окончательно формируя строку из трех символов.

Итак, в итоге в строку result будет записана новая строка, состоящая из символов char1, char2 и char3.

Задача

Входные данные
В первой строке задается имя пользователя.

Выходные данные
Выведите на экран:
1) в первой строке - приветствие пользователю в виде "Hello, имя!" (без кавычек)
2) во второй строке - выведите имя пользователя 10 раз через пробел.

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w64552
Python1
Комментарий учителя