如何将char*分配给char数组?

Aug*_*ani 1 c++ char

编译器告诉我"char*赋值给char [32]的不兼容类型"这是我的代码:

char* generalOperations[2]={"Off","On"};

 void test(){
   char value[32];
    switch(swapVariable){
     case 0:
      value=generalOperations[0]; //<==Error HERE!
     break;
    }

 }
Run Code Online (Sandbox Code Playgroud)

[解决了]:

  strcpy(value,generalOperations[0]);
Run Code Online (Sandbox Code Playgroud)

dak*_*nøk 8

使用std::string替代char*std::array<T, N>取代T[N].两者都是类型安全的(相对于memcpy),两者都是现代C++风格,并且都可以使用赋值运算符直接赋值.

#include <array>
#include <string>

std::array<std::string, 2> generalOperations{"Off", "On"};

void test() {
    std::string value;
    switch(swapVariable) {
        case 0: value = generalOperations[0]; break;
    }
}
Run Code Online (Sandbox Code Playgroud)