📜  字符串转char数组c++(1)

📅  最后修改于: 2023-12-03 14:53:27.190000             🧑  作者: Mango

字符串转char数组c++

在C++编程中,经常需要将字符串转换为字符数组。这是因为字符串是用字符数组表示的,所以字符数组可以更好地处理字符串。在本文中,我们将了解如何将字符串转换为字符数组。

实现方式一:使用strcpy函数

strcpy函数可以将一个字符串复制到一个字符数组中。它需要两个参数:源字符串和目标字符数组。

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char str1[] = "hello world";
    char str2[20];

    strcpy(str2, str1);

    cout << "str1: " << str1 << endl;
    cout << "str2: " << str2 << endl;

    return 0;
}

输出:

str1: hello world
str2: hello world

可以看到,str1str2的值相同,因为strcpy函数将str1的值复制到了str2中。

实现方式二:使用循环

我们可以使用循环逐个将字符从字符串中复制到字符数组中。这个方法可能比较麻烦,但它可以帮助我们更好地了解如何将字符串转换为字符数组。

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    char str1[] = "hello world";
    int len = strlen(str1);
    char str2[20];

    for (int i = 0; i < len; i++)
    {
        str2[i] = str1[i];
    }
    str2[len] = '\0';

    cout << "str1: " << str1 << endl;
    cout << "str2: " << str2 << endl;

    return 0;
}

输出:

str1: hello world
str2: hello world

注意,我们需要在字符数组的末尾添加一个空字符\0。这是因为C++字符串以空字符结尾,如果没有空字符,字符串就不完整。

实现方式三:使用string成员函数

C++中有一个string类,它提供了一些方便的方法来处理字符串。其中一个方法是c_str(),可以将字符串转换为一个常量字符指针。我们可以使用这个指针来初始化一个字符数组。

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str = "hello world";
    int len = str.length();
    char str2[20];

    const char *cstr = str.c_str();

    for (int i = 0; i < len; i++)
    {
        str2[i] = cstr[i];
    }
    str2[len] = '\0';

    cout << "str: " << str << endl;
    cout << "str2: " << str2 << endl;

    return 0;
}

输出:

str: hello world
str2: hello world

注意,这种方法同样需要在字符数组的末尾添加一个空字符\0

总结

在C++编程中,将字符串转换为字符数组是一个非常常见的问题。我们可以使用strcpy函数、循环或者string类来实现。无论使用哪种方法,都需要注意字符数组的长度以及末尾的空字符。