strcmp或string :: compare?
我想比较两个字符串。 strcmp
有可能吗? (我试过,似乎没有用)。 string::compare
解决方案吗?
除此之外,还有一种方法可以将string
与char
进行比较吗?
感谢您的早期评论。 我是用C ++编写的,是的,就像你提到的一样,它是std::string
。 我没有发布代码,因为我想学习一般知识,这是一个很长的代码,所以它与问题无关。
我想我已经了解了C ++和C之间的区别,感谢你指出这一点。 我现在将尝试使用重载运算符。 顺便说一句, string::compare
也有效。
对于C ++,使用std::string
并使用string::compare
。
对于C使用strcmp
。 如果你的( 我的意思是你的程序 )字符串( 由于一些奇怪的原因 )不是nul
终止,请改用strncmp
。
但为什么有人不会使用像==
std::string
那样简单的东西?
假设你的意思是std::string
,为什么不使用重载运算符: str1 == str2
, str1 < str2
?
请参阅std::basic_string::compare
和std::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,保留错字:)