比较字符串和指针
Comparing Strings and pointers
我仍在努力研究 C 中的指针和字符串,以获得我正在学习的 class。在下面的示例中,g_reservations[][] 是一个全局变量(不理想,我知道,但我无法更改它)。
错误:
警告 C4047 'function':'const char *' 的间接级别不同于 'char' EconoAirBeta ... 299
*passenger是一个指针,那么创建一个指向global的指针呢?好像没必要...
我该怎么做?我觉得我错过了一些我的大脑似乎无法理解的非常简单的概念....
unsigned int FindSeatWithPassenger(const char *passengerName)
{
unsigned int seat = 0;
for (seat = 0; seat < NUM_SEATS; ++seat)
{
if ( strncmp(passengerName, g_reservations[seat][0], NAME_LENGTH) != 0) //error here with global variable
{
return seat;
break;
}
}
return '[=10=]';
}
全局声明:
#define NAME_LENGTH 10
#define NAME_BUFFER_LENGTH ( NAME_LENGTH + 1 )
char g_reservations[NUM_SEATS][NAME_BUFFER_LENGTH];
类型错误
正如错误所说
g_reservations[seat][0]
是 char
.
int strncmp(const char *s1, const char *s2, size_t n)
期望 char *
对应 s2
。
使用&g_reservations[seat][0]
或简单地g_reservations[seat]
strncmp(passengerName, g_reservations[seat], NAME_LENGTH)
我仍在努力研究 C 中的指针和字符串,以获得我正在学习的 class。在下面的示例中,g_reservations[][] 是一个全局变量(不理想,我知道,但我无法更改它)。
错误: 警告 C4047 'function':'const char *' 的间接级别不同于 'char' EconoAirBeta ... 299
*passenger是一个指针,那么创建一个指向global的指针呢?好像没必要...
我该怎么做?我觉得我错过了一些我的大脑似乎无法理解的非常简单的概念....
unsigned int FindSeatWithPassenger(const char *passengerName)
{
unsigned int seat = 0;
for (seat = 0; seat < NUM_SEATS; ++seat)
{
if ( strncmp(passengerName, g_reservations[seat][0], NAME_LENGTH) != 0) //error here with global variable
{
return seat;
break;
}
}
return '[=10=]';
}
全局声明:
#define NAME_LENGTH 10
#define NAME_BUFFER_LENGTH ( NAME_LENGTH + 1 )
char g_reservations[NUM_SEATS][NAME_BUFFER_LENGTH];
类型错误
正如错误所说
g_reservations[seat][0]
是 char
.
int strncmp(const char *s1, const char *s2, size_t n)
期望 char *
对应 s2
。
使用&g_reservations[seat][0]
或简单地g_reservations[seat]
strncmp(passengerName, g_reservations[seat], NAME_LENGTH)