Копирование одной строки в другую

C++Beginner
Практиковаться сейчас

Введение

В этом практическом занятии вы научитесь копировать строки на C++. Для демонстрации этого мы будем использовать как объекты строк, так и C-стильные строки.

Создайте новый файл C++

Перейдите в каталог ~/project и создайте новый файл на C++, названный main.cpp.

cd ~/project
touch main.cpp

Копирование объектов строк

Мы можем использовать оператор присваивания для копирования одного объекта строки в другой. Следуйте коду ниже:

#include <iostream>
#include <string>

using namespace std;

int main() {
    string s1, s2;

    cout << "Enter string s1: ";
    getline(cin, s1);

    s2 = s1;

    cout << "s1 = " << s1 << endl;
    cout << "s2 = " << s2;

    return 0;
}

Пояснение:

  • Мы начинаем с включения необходимых библиотек для этой программы, которые это iostream и string.
  • Затем мы определяем два объекта строк s1 и s2
  • Пользователю предлагается ввести строку s1 с использованием функции getline(), которая читает всю строку с учетом пробелов.
  • Присваиваем s1 s2 с использованием оператора присваивания.
  • Наконец, мы выводим s1 и s2.

Результат работы программы

Enter string s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Копирование C-стильных строк

Мы будем использовать функцию strcpy() из библиотеки cstring для копирования C-стильных строк. Следуйте коду ниже:

#include <iostream>
#include <cstring>

using namespace std;

int main() {
    char s1[100], s2[100];

    cout << "Enter string s1: ";
    cin.getline(s1, 100);

    strcpy(s2, s1);

    cout << "s1 = " << s1 << endl;
    cout << "s2 = "<< s2;

    return 0;
}

Пояснение:

  • Мы начинаем с включения необходимых библиотек для этой программы, которые это iostream и cstring
  • Затем мы определяем два массива C-стильных строк s1 и s2
  • Пользователю предлагается ввести строку s1
  • Функция getline() в этом случае не используется, потому что она используется только для объектов строк, а не для C-стильных строк. Вместо этого мы используем cin.getline, где первый аргумент - это переменная массива, а второй аргумент - это максимальный размер массива для чтения.
  • Копируем строку s1 в s2 с использованием функции strcpy() из cstring
  • Наконец, мы выводим s1 и s2.

Результат работы программы

Enter string s1: Hello World!
s1 = Hello World!
s2 = Hello World!

Запустите файл

Для запуска кода в терминале откройте терминал в папке проекта и выполните следующие команды:

g++ main.cpp -o main
./main

Эта команда скомпилирует файл main.cpp и выведет исполняемый файл с именем main в том же каталоге. Вторая команда запускает файл main и выводит результат в терминале.

Резюме

В этом практическом занятии обсуждалось, как копировать строки в C++ с использованием объектов строк и C-стильных строк. Вы узнали, что для объектов строк можно использовать оператор присваивания, а для C-стильных строк - функцию strcpy() из библиотеки cstring. Следуя этим простым шагам, вы можете легко копировать строки в C++.