[英]In C++, how do i use like strncmp function in C?
在 C++ 中,C 中没有像strncmp()
这样的字符串函数strncmp()
???
例如
string str1 = "abc";
string str2 = "ab";
str2.compare(0,1,str1) == 0
是否可以??
您可以直接比较std::string
:
if (str1 == str2)
要比较长度为 2,请使用compare :
if (str2.compare(0, 2, str1) == 0)
如果包含相应的 C 头文件,您也可以在 C++ 中使用 C 函数,例如使用string.h
,包括<cstring>
。
std::string
已重载其 '==' 运算符。 只要if (a == b)
有效。 有趣的是,即使(a < b)
工作并应用词法排序。
编辑:毕竟 TE 似乎询问字符串长度的相等性,而不是它们的实际字母:
if (str1.length() == str2.length())
{
}
是的,类 std::string 为您的用例声明了成员函数 compare,例如
int compare(size_type pos1, size_type n1, basic_string_view<charT, traits> sv) const;
这是一个演示程序,展示了如何使用这个重载的成员函数。
#include <iostream>
#include <string>
int main()
{
std::string str1 = "abc";
std::string str2 = "ab";
std::cout << str2.compare( 0, 1 ,str1) << '\n';
std::cout << str1.compare( 0, 2 , str2) << '\n';
std::cout << str2.compare( str1 ) << '\n';
std::cout << str2.compare( 1, 1, str1 ) << '\n';
return 0;
}
程序输出是
-2
0
-1
1
因此,如果两个字符串相等,则该函数返回 0。如果第一个字符串小于第二个字符串,则该函数返回一个负值。 否则函数返回一个正值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.