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