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

how to change pointer in switch statement. Error :invalid conversion from 'const char*' to 'char'

本文关键字:char const 无效 转换 语句 开关 错误 指针      更新时间:2023-10-16

我在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;
   }
}

它给了我错误的

"从'const-char*'到'char'的转换无效

如何修改此代码以更改指针?我只想能够打印出带有替换值的*p。我该怎么做?或者你建议我采取什么不同的方式来实现这一点?或者换句话说,我还能怎么写这个程序来修改输入。

此答案考虑

我在C中有这个代码

这里的pchar *

由于一次获取一个charswitch情况),因此需要使用char值来填充*p,而不是像那样使用字符串

*p = 'n';

等等

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

也就是说,在C代码中,您不能使用cout,正如注释中提到的那样。