use*_*251 1 c++ string pointers char
使用C++ MFC和Visual Studio 2008.
抱歉新手问题,但我不确定为什么这不起作用.我正在创建一个函数,在char *传递给它的XML中找到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'
Run Code Online (Sandbox Code Playgroud)
我不能为我的生活弄清楚为什么它不起作用.我有什么错误的语法?
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, """);
break;
case '\'':
strcat_s(Temp, 6, "'");
break;
case '&':
strcat_s(Temp, 5, "&");
break;
case '<':
strcat_s(Temp, 4, "<");
break;
case '>':
strcat_s(Temp, 4, ">");
break;
default:
strcat_s(Temp, 1, (const char*)input[i]);
break;
}
}
return Temp;
}
Run Code Online (Sandbox Code Playgroud)
你可能意味着单引号而不是双引号:
input[i] == '"'
^ ^
Run Code Online (Sandbox Code Playgroud)
其他情况也是如此.当您使用双引号时,如"&",您创建一个"字符串文字".但是input[i]是一个字符:你无法将字符串文字与字符进行比较.
更重要的是,即使它input[i]也是一个字符串文字,也不是比较C++中c风格字符串的正确方法.
| 归档时间: |
|
| 查看次数: |
240 次 |
| 最近记录: |