我已将 xml 文件读入 char [] 并尝试将该数组中的每个元素与某些字符(例如“<”和“>”)进行比较。char 数组“test”只是一个包含一个元素的数组,包含要比较的字符(我必须这样做,否则 strcmp 方法会给我一个关于将 char 转换为 cons char* 的错误)。但是,出了点问题,我无法弄清楚。这是我得到的:
< 正在与:< strcmp 值:44
知道发生了什么吗?
char test[1];
for (int i=0; i<amountRead; ++i)
{
test[0] = str[i];
if( strcmp(test, "<") == 0)
cout<<"They are equal"<<endl;
else
{
cout<<test[0]<< " is being compare to: "<<str[i]<<" strcmp value= "<<strcmp(test, "<") <<endl;
}
}
Run Code Online (Sandbox Code Playgroud)
您需要 0 终止您的测试字符串。
char test[2];
for (int i=0; i<amountRead; ++i)
{
test[0] = str[i];
test[1] = '\0'; //you could do this before the loop instead.
...
Run Code Online (Sandbox Code Playgroud)
但是,如果您总是打算一次比较一个字符,则根本不需要临时缓冲区。你可以这样做
for (int i=0; i<amountRead; ++i)
{
if (str[i] == "<")
cout<<"They are equal"<<endl;
else
{
cout << str[i] << " is being compare to: <" << endl;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32741 次 |
| 最近记录: |