📜  在C++中将字符串转换为char数组(1)

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

在C++中将字符串转换为char数组

简介

在C++中,将字符串转换为char数组可以让我们更方便地使用C风格字符串,在一些特殊场合下也许更加高效。

方法
方法一:使用c_str()函数

C++中的std::string类提供了c_str()函数,可以将该字符串转换为一个C风格的const char*类型。我们可以使用strcpy()函数将该字符串复制到char数组中。

#include <iostream>
#include <string.h>

int main() {
    std::string str = "hello world";
    const char *c = str.c_str();
    char arr[12];
    strcpy(arr, c);
    std::cout << arr << std::endl;
    return 0;
}

输出:

hello world
方法二:使用string的迭代器

我们可以使用C++中迭代器的概念,将字符串中的每一个字符复制到char数组中。

#include <iostream>
#include <string.h>

int main() {
    std::string str = "hello world";
    char arr[str.size() + 1];
    int i = 0;
    for (auto it = str.begin(); it != str.end(); it++) {
        arr[i++] = *it;
    }
    arr[i] = '\0';
    std::cout << arr << std::endl;
    return 0;
}

输出:

hello world
总结

以上两种方法都可以将std::string类型的字符串转换为char数组类型,使用时可根据实际场合灵活选择。注意,如果char数组长度不够,可能会出现数组越界的情况。