strcmp或string :: compare?

我想比较两个字符串。 strcmp有可能吗? (我试过,似乎没有用)。 string::compare解决方案吗?

除此之外,还有一种方法可以将stringchar进行比较吗?


感谢您的早期评论。 我是用C ++编写的,是的,就像你提到的一样,它是std::string 。 我没有发布代码,因为我想学习一般知识,这是一个很长的代码,所以它与问题无关。

我想我已经了解了C ++和C之间的区别,感谢你指出这一点。 我现在将尝试使用重载运算符。 顺便说一句, string::compare也有效。

对于C ++,使用std::string并使用string::compare

对于C使用strcmp 。 如果你的( 我的意思是你的程序 )字符串( 由于一些奇怪的原因 )不是nul终止,请改用strncmp

但为什么有人不会使用像== std::string那样简单的东西?

假设你的意思是std::string ,为什么不使用重载运算符: str1 == str2str1 < str2

请参阅std::basic_string::comparestd::basic_string运算符引用 (特别是存在operator==operator!=operator<等)。 你还需要什么?

使用C ++时使用C ++函数即。 string::compare 。 使用C时,您必须使用char*作为字符串,请使用strcmp

通过你的问题,“有没有办法将字符串与char进行比较?” 你的意思是“我怎么知道字符串中是否包含特定的字符?” 如果是这样,C库函数:

  char *strchr(const char *s, int c); 

会为你做的。

– 皮特

std :: string可以包含(和比较!)嵌入的空字符。

are * comp(…)将比较c风格的字符串,比较第一个空字符(或指定的最大字节数/字符数)

string :: compare实际上是作为模板basic_string实现的,因此你可以期望它适用于其他类型,如wstring

在“将字符串与char进行比较”的不明确的短语中,您可以将char与* string.begin()进行比较或查找第一次出现(string :: find_first_of和string :: find_first_not_of)

免责声明:输入我的HTC,保留错字:)