string 数组 转 char* []

#include 
using namespace std;
 
int main() {
    string strArray[] = {"Hello", "World"}; // 定义字符串数组
    
    int size = sizeof(strArray) / sizeof(strArray[0]); // 计算数组大小
    
    char** argList = new char* [size]; // 创建char*类型的动态数组
    
    for (int i = 0; i < size; ++i) {
        const char* cStr = strArray[i].c_str(); // 将每个字符串转换为const char*类型
        
        argList[i] = new char[strlen(cStr)+1]; // 分配内存空间保存转换后的字符串
        
        strcpy(argList[i], cStr); // 复制字符串到新分配的内存空间
    }
    
    // 输出结果
    cout << "转换后的参数列表如下:" << endl;
    for (int j = 0; j < size; ++j) {
        cout << argList[j] << endl;
    }
    
    // 清理资源
    for (int k = 0; k < size; ++k) {
        delete [] argList[k];
    }
    delete [] argList;
    
    return 0;
}

这段代码首先定义了一个包含两个元素的字符串数组strArray,然后通过计算得到数组的大小。接下来,我们创建了一个与数组大小相同的char*类型的动态数组argList。在for循环中,我们对于每个字符串都进行了转换并分配了足够的内存空间,最后将其复制到新分配的内存空间中。最后,我们打印出转换后的参数列表,并且记得要手动释放所有分配的内存空间。

你可能感兴趣的:(c++,算法,开发语言)