比较字符串和指针

问题描述 投票:0回答:1

我仍在尝试将C的指针和字符串缠在我要上的类上。在下面的示例中,g_reservations [] []是一个全局变量(我知道这是不理想的,但是我无法更改)。

错误:警告C4047'function':'const char *'与'char'的间接寻址级别有所不同EconoAirBeta ... 299

* passenger是一个指针,是否创建指向全局的指针?似乎没有必要...

我该如何进行这项工作?我觉得我缺少一个我的大脑似乎无法掌握的难以置信的简单概念。...

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 '\0';
}

全局声明:

#define NAME_LENGTH 10
#define NAME_BUFFER_LENGTH ( NAME_LENGTH + 1 )
char g_reservations[NUM_SEATS][NAME_BUFFER_LENGTH];
c c89
1个回答
0
投票

错误类型

正如错误所言。

[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)
© www.soinside.com 2019 - 2024. All rights reserved.