如何在开关语句中更改指针。错误:从'const char*'到'char'的转换无效
how to change pointer in switch statement. Error :invalid conversion from 'const char*' to 'char'
我在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
中有这个代码
这里的p
是char *
。
由于一次获取一个char
(switch
情况),因此需要使用char
值来填充*p
,而不是像那样使用字符串
*p = 'n';
等等
请记住,""
表示字符串文字(通常为char *
类型),而''
表示char
文字(不要感到惊讶,它是int
类型)。
也就是说,在C代码中,您不能使用cout
,正如注释中提到的那样。
相关文章:
- 在字符串函数中抛出'char const*'实例后调用的终止
- 双重标准?为什么只有 char* const&a = "bla" 的警告?
- 包括"lvtocon.h",未定义对'operator<<(std::ostream&, char const*)的引用
- 为什么 const char* const & = 可以编译"hello"?
- 将字符串文本常量定义为 char const* 和 wchar const*
- 如何将std::wstring转换为char const[]
- "char const * name() const _WEBSOCKETPP_NOEXCEPT_TOKEN_ {"剂量是什么意思
- 使用提升对字符串进行标记化时,将令牌转换为 char* const* 时失败
- 如何从 std::initializer_list<char const* 构建 std::vector<std::string>>
- 将 std::vector<std::string> 转换为 const char* const*
- 引发"char const*"错误的实例后调用的终止
- 将const char * const参数成员分配给新值
- 从'const char**'到'char* const*'的转换无效
- 从 sub_match<常量字符 *>' 转换为'const char *const &'
- char*const和constchar*之间有什么区别?(重复-需要更多澄清)
- 使用工厂方法时编译器错误:无法转换"const std::p air<char* const
- HEVC 解码器端口 Android 警告:从 'signed char*' 到 'char const* 的转换无效*
- 如何从'char const*'中删除常量
- 'char const *str'作为模板参数
- 为什么不;t strlen(.)应为const char*const str,而不是const char*