我在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
替换值.我该怎么做呢?或者你会建议我做些不同的工作?或者换句话说,我怎么能写这个程序来修改输入.
这个答案考虑
我有这个代码
C
p
在char *
这里.
当你char
一次拿一个(switch
case)时,你需要使用一个char
值来填充*p
,而不是像字符串一样
*p = '\n';
Run Code Online (Sandbox Code Playgroud)
等等.
请记住,a ""
表示字符串文字(char *
通常为类型),而a ''
表示char
文字(不要惊讶,它是类型int
).
也就是说,在C代码中,您无法使用cout
,如评论中所述.