我有一个返回char* (一个名称)的函数。我需要检查该名称是否与我在运行程序时键入的名称相同。那么如何比较char指针和char数组呢?(这是学校作业的一部分)
发布于 2015-04-14 00:57:56
在C++中,您应该返回std::string而不是char*,并与
if (returned == expected)如果你正在尝试写一个可怕的C和C++的混合,那么你可以做一个字符串来比较:
if (std::string(pointer) == expected)或者使用C库
if (std::strcmp(pointer, expected) == 0)发布于 2015-04-14 00:57:33
像这样使用strcmp
char a[] = "someName";
char* b = GetSomeOtherName();
if (strcmp(a, b) == 0)
{
// equal
}发布于 2015-04-14 00:59:31
您可以使用<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
}https://stackoverflow.com/questions/29610822
复制相似问题