如何在switch语句中更改指针.错误:从'const char*'到'char'的转换无效

Dyl*_*tle 1 c++ pointers

我在C中使用emacs的代码,其中我已经收到了一个输入,如果输入使用以下任何字符我想用其余的代码替换它们.但我收到一个错误.我究竟做错了什么?

void askQuestion(char text[])
{
   for (char * p = text; *p; p++)
   {
      switch (*p)
      {
         case '<':
            *p = "";
            break;
         case '>':
            *p = "";
            break;
         case '#':
            *p = "\n";
            break;
         case '{':
            *p = " \"";
            break;
         case '}':
            *p = "\" ";
            break;
         case '[':
            *p = " \'";
            break;
         case ']':
            *p = "\' ";
            break;
      }

      cout << *p;
   }

}
Run Code Online (Sandbox Code Playgroud)

它给了我错误

"从'const char*'无效转换为'char'

如何修改此代码以更改指针?我只是希望能够打印出*p替换值.我该怎么做呢?或者你会建议我做些不同的工作?或者换句话说,我怎么能写这个程序来修改输入.

Sou*_*osh 5

这个答案考虑

我有这个代码 C

pchar * 这里.

当你char一次拿一个(switchcase)时,你需要使用一个char值来填充*p,而不是像字符串一样

*p = '\n';
Run Code Online (Sandbox Code Playgroud)

等等.

请记住,a ""表示字符串文字(char *通常为类型),而a ''表示char文字(不要惊讶,它是类型int).

也就是说,在C代码中,您无法使用cout,如评论中所述.