gpt4 book ai didi

c++ - 字符指针比较错误

转载 作者:太空宇宙 更新时间:2023-11-03 10:28:42 24 4
gpt4 key购买 nike

使用 C++ MFC 和 Visual Studio 2008。

抱歉新手问题,但我不确定为什么这不起作用。我正在创建一个函数,该函数在传递给它的 char * 中查找 XML 的标准非法字符,但我收到一个奇怪的错误。

char* XMLIllegalCharacterParser(char *input){
char *Temp;
for (size_t i = 0; i < strlen(input); i++){
if(input[i] == "\"" || input[i] == "\'" || input[i] == "&")
}
return Temp;
}

1>.\FileImport.cpp(868) : error C2446: '==' : no conversion from 'const char *' to 'int'

我一辈子都弄不明白为什么它不起作用。我有什么语法错误吗?

PS:我知道那里只有 3 个字符。我遇到了这个错误,我想在添加其他两个之前修复它。

这是我的后续代码:

char* XMLIllegalCharacterParser(char *input){
char *Temp;
for (size_t i = 0; i < strlen(input); i++){
switch(input[i]){
case '\"':
strcat_s(Temp, 6, "&quot;");
break;
case '\'':
strcat_s(Temp, 6, "&apos;");
break;
case '&':
strcat_s(Temp, 5, "&amp;");
break;
case '<':
strcat_s(Temp, 4, "&lt;");
break;
case '>':
strcat_s(Temp, 4, "&gt;");
break;
default:
strcat_s(Temp, 1, (const char*)input[i]);
break;
}
}
return Temp;
}

最佳答案

您可能指的是单引号而不是双引号:

input[i] == '"'
^ ^

其他情况也一样。当您使用双引号时,如在“&”中,您创建了一个“字符串文字”。但是 input[i] 是一个字符:您不能将字符串文字与字符进行比较。

此外,即使 input[i] 也是字符串文字,这也不是在 C++ 中比较 c 风格字符串的正确方法。

关于c++ - 字符指针比较错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24451859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com