比较字符 [] 和字符*



我有一个返回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
}

相关内容

  • 没有找到相关文章

最新更新