2015-03-20 4 views
-2

Мне нужно сравнить 3 строки с одной строкой.
В настоящее время я использую данный код. seatclass вводится пользователем.Сравнение нескольких строк

char first[10] = "FC"; 
char econ[10] = "EC"; 
char eandf[10]= "FC&EC"; 

    if ((seatclass==first)||(seatclass==econ)||(seatclass==eandf)) 
     { 
     printf("win"); 
     } 
     else 
     {  
     printf("This is not a seatclass choose again"); 
     getchar(); 
     } 

Однако, когда я вхожу FC или любая другая случайная величина, я всегда получаю
This is not a seatclass choose again

+0

Какой язык это? Пожалуйста, отметьте свой вопрос на соответствующем языке. –

+0

Это язык C –

+0

Затем обновите свой вопрос и добавьте тег «c». Кстати, сравнение строк в c выполняется с помощью 'strcmp'. –

ответ

1

Ответом является то, что «==» оператор сравнения указателей в вашем случае вы должны использовать функцию strncmp (from string.h)

0

Для сравнения двух строк мы можем использовать функции strcmp() или strncmp().

2

Вы должны использовать strcmp для сравнения в С.

Вот как вы можете сделать сравнение:

Вы можете использовать «==» для сравнения string в C++:

char first[10] = "FC"; 
char econ[10] = "EC"; 
char eandf[10]= "FC&EC"; 

if (strcmp(seatclass,first)==0 || strcmp(seatclass,econ)==0 || strcmp(seatclass,eandf)==0) 
{ 
    printf("win"); 
} 
else 
{ 
    printf("This is not a seatclass choose again"); 
    getchar(); 
} 

ПРИМЕЧАНИЕ

0

Используя функцию strcmp(), мы можем сравнить строку дыр, используя функцию strncmp(), мы можем сравнить некоторый определенный диапазон строки.

обе функции возвращают 0, если строка же, иначе вернуть -1 or 1

Смежные вопросы