【发布时间】:2015-04-13 16:53:52
【问题描述】:
我有一个返回char*(名称)的函数。我需要检查名称是否与我在运行程序时输入的名称相同。
那么如何比较 char 指针和 char 数组呢? (这是学校作业的一部分)
【问题讨论】:
-
你至少尝试过在这个网站上搜索答案吗?
标签: c++ arrays pointers char compare
我有一个返回char*(名称)的函数。我需要检查名称是否与我在运行程序时输入的名称相同。
那么如何比较 char 指针和 char 数组呢? (这是学校作业的一部分)
【问题讨论】:
标签: c++ arrays pointers char compare
在 C++ 中,您将返回 std::string 而不是 char*,并与
if (returned == expected)
如果您尝试编写 C 和 C++ 的可怕混合体,那么您可以创建一个字符串进行比较:
if (std::string(pointer) == expected)
或使用 C 库
if (std::strcmp(pointer, expected) == 0)
【讨论】:
像使用 strcmp 一样
char a[] = "someName";
char* b = GetSomeOtherName();
if (strcmp(a, b) == 0)
{
// equal
}
【讨论】:
您可以使用 strcmp() from <cstring> header like
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
}
【讨论】: