比较char []和char *

时间:2015-04-13 16:53:52

标签: c++ arrays pointers char compare

我有一个返回char*(名称)的函数。我需要检查名称是否与我在运行程序时键入的名称相同。 那么如何比较char指针和char数组呢? (这是学校作业的一部分)

3 个答案:

答案 0 :(得分:9)

在C ++中,您返回std::string而不是char*,并与

进行比较
if (returned == expected)

如果您正在尝试编写C和C ++的可怕混合,那么您可以创建一个字符串进行比较:

if (std::string(pointer) == expected)

或使用C库

if (std::strcmp(pointer, expected) == 0)

答案 1 :(得分:5)

使用类似strcmp的

char a[] = "someName";
char* b = GetSomeOtherName();
if (strcmp(a, b) == 0)
{
    // equal
}

答案 2 :(得分:1)

您可以使用strcmp()标题中的<cstring>

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
}