c++ - string s怎么改成char * a[]?

标签 c++

我要转型

字符串 s="aaa,bbb,ccc"

进入:

char * a[]={"aaa", "bbb", "ccc"}

你能帮我编写程序来处理这个过程吗?

我会尝试这样编程:

string s="aaa,bbb,ccc";
char * a[];
char id[] = "";
strcpy(id, s.c_str());
const char * split = ",";
char * p;

    p = strtok(id, split);
    while (p != NULL) {
        int i = 0;
        printf("%s\n", p);
        a[i]=p;

        i++;
        p = strtok(NULL, split);
    }

我哪里错了?谁能指点一下?

最佳答案

我是编程新手,但我一直在做以下事情:

#include "stdafx.h"
#include <stdio.h>
#include <iostream>


int _tmain(int argc, _TCHAR* argv[])
{       
    std::string s = "aaa,bbb,ccc";

    // dynamically allocate memory for the char
    char * a = new char [s.length()+1];

    // the string needs to be copied into a
    std::strcpy(a, s.c_str());

    std::cout << a;

    // cleanup
    delete [] a;

    return 0;
}

编辑:刚刚注意到您希望将字符串的不同部分作为 char 数组的元素,我的回答不会那样做。

关于c++ - string s怎么改成char * a[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32222078/

相关文章:

c++ - VIM 的 YouCompleteMe 插件 - 如何支持其他库方法的自动完成? (例如 openmpi)

c++ - 在 CMake 中设置默认编译器

C++——静态变量

c++ - 何时调用复制构造函数和析构函数,为什么?

c++ - 在共享库中查找引用 undefined symbol 的源文件

android - Android 版 Opencv SDK 中的 opencv "C"方法

c# - c# 中的 System.Diagnostics.Process 和 c++ 中的 CreateProcess() 哪个是最佳选择?

c++ - 如何在 C++ 的类中定义常量数组?

c++ - BigInteger 数字实现和性能

C++:在回调中恢复对象指针(API 不支持 user_data 指针)