我有一个返回char*
(名称)的函数。我需要检查名称是否与运行程序时键入的名称相同。那么如何比较字符指针和字符数组呢?(这是学校作业的一部分)
在C++中,您将返回std::string
而不是char*
,并与
if (returned == expected)
如果你试图写一个可怕的C和C++的混合,那么你可以创建一个字符串来比较:
if (std::string(pointer) == expected)
或使用 C 库
if (std::strcmp(pointer, expected) == 0)
像 strcmp 一样使用 strcmp
char a[] = "someName";
char* b = GetSomeOtherName();
if (strcmp(a, b) == 0)
{
// equal
}
您可以使用<cstring>
标头中的strcmp()
,例如
if ( strcmp ( func() , a ) == 0 )
{
// they are equal
}
其中func()
返回指针,a
是字符数组。
但是,当您在 C++ 上时,您应该使用 std::string
.它比字符数组好得多。
检查字符串是否相等真的很容易。你可以做
std::string string1;
std::string string2;
// assign them some values
if ( string1 == string2 )
{
// they are equal
}