比较两个字符串(但不同类型的)

Compare two strings (but different types of)

本文关键字:同类型 两个 比较 字符串      更新时间:2023-10-16

在c++程序中,我需要比较两个字符串是否相等:

TagLib::String artist1 = f.tag()->artist();

(见http://taglib.github.io/api/classTagLib_1_1String.html)

argv[2]

(来自int main(int argc, char *argv[]))。

我尝试了很多方法来做这件事,但我没有成功:artist1 != argv[2]不工作,strcmp(artist1,argv[2])不工作,等等

你可以试试:

 artist1.to8Bit() != argv[2]

根据文档,函数to8Bit()应该返回一个类型为std::string()的对象,对于operator !=的一个接受const char*的重载是可用的。

只是要确保在

 #include <string> // <== YOU WILL NEED THIS TO WORK WITH std::string

根据您提供的参考链接,TagLib::String只提供了其他TagLib::String的比较运算符。还提供了一个基于c风格字符串的构造函数:

TagLib::String (const char *s, Type t=Latin1)

您可以通过首先从char*:

构造TagLib::String来比较TagLib::String与c风格的char*。
if(artist1 != TagLib::String(argv[2])) ...
相关文章: