复制一个字符串到另一个字符串

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,你将学习如何在 C++ 中复制字符串。我们将使用字符串对象和 C 风格字符串来演示这一过程。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("`C++`")) -.-> cpp/BasicsGroup(["`Basics`"]) cpp(("`C++`")) -.-> cpp/IOandFileHandlingGroup(["`I/O and File Handling`"]) cpp(("`C++`")) -.-> cpp/SyntaxandStyleGroup(["`Syntax and Style`"]) cpp/BasicsGroup -.-> cpp/arrays("`Arrays`") cpp/BasicsGroup -.-> cpp/strings("`Strings`") cpp/IOandFileHandlingGroup -.-> cpp/output("`Output`") cpp/IOandFileHandlingGroup -.-> cpp/user_input("`User Input`") cpp/IOandFileHandlingGroup -.-> cpp/files("`Files`") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("`Code Formatting`") subgraph Lab Skills cpp/arrays -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} cpp/strings -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} cpp/output -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} cpp/user_input -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} cpp/files -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} cpp/code_formatting -.-> lab-96183{{"`复制一个字符串到另一个字符串`"}} end

创建一个新的 C++ 文件

导航到 ~/project 目录,并创建一个名为 main.cpp 的 C++ 文件。

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;
}

代码说明:

  • 我们首先包含了程序所需的库,即 iostreamstring
  • 然后定义了两个字符串对象 s1s2
  • 使用 getline() 函数提示用户输入字符串 s1,该函数会读取包含空格的整个字符串。
  • 使用赋值运算符将 s1 赋值给 s2
  • 最后,我们打印 s1s2

代码输出:

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

复制 C 风格字符串

我们将使用 cstring 库中的 strcpy() 函数来复制 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;
}

代码说明:

  • 我们首先包含了程序所需的库,即 iostreamcstring
  • 然后定义了两个 C 风格字符串数组 s1s2
  • 提示用户输入字符串 s1
  • 这里没有使用 getline() 函数,因为它仅适用于字符串对象,而不适用于 C 风格字符串。我们使用 cin.getline,其中第一个参数是数组变量,第二个参数是要读取的数组的最大大小。
  • 使用 cstring 中的 strcpy() 函数将字符串 s1 复制到 s2
  • 最后,我们打印 s1s2

代码输出:

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

运行文件

要在终端中运行代码,请在项目文件夹中打开终端并执行以下命令:

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

该命令会编译 main.cpp 文件,并在同一目录下生成一个名为 main 的可执行文件。第二条命令会运行 main 文件,并在终端中输出结果。

总结

本实验讨论了如何在 C++ 中使用字符串对象和 C 风格字符串来复制字符串。你了解到,对于字符串对象,可以使用赋值运算符;而对于 C 风格字符串,可以使用 cstring 中的 strcpy() 函数。通过遵循这些简单的步骤,你可以轻松地在 C++ 中复制字符串。

您可能感兴趣的其他 C++ 教程