我是C ++编程的新手,我遇到过这种情况。我有一个像这样定义的结构
struct someStruct{
...
char sType[16];
...
};
在我的代码中,我尝试比较哪个值进入这个成员,我尝试使用这样的东西(因为我在C#中工作)
someStruct.sType.compare("FF") == 0
但它会引发编译错误。我现在正在做的是将someStruct.sType设置为变量X并使用
X.compare
这是这样做的方法吗? (我不这么认为) 还有另一种方法来实现这个目标吗?
答案 0 :(得分:3)
您想使用std::string
。它有你想要的方法。它甚至有compare
方法。
char数组不是任何与之关联的方法的对象,它只是数据。
答案 1 :(得分:1)
char数组不是类,因此它没有compare
等成员函数。
您可以改为使用std::string
:
std::string sType;
并将其与std::string::compare
进行比较:
if (someStruct.sType.compare("FF") == 0)
或者只是使用operator==
:
if (someStruct.sType == "FF")