2013-06-10 3 views
-7

Привет Я выполняю задание, и в этой части этого вопроса мне нужно проверить, является ли слово, которое я ввел в массив символов, равным слову, хранящемуся в массиве структуры. Это то, что у меня есть, но он не работает:Сравнить char array

if (CDdata[i].artist == search) 

Может кто-то пожалуйста, помогите мне сравнить элемент в структуре массива в массив символов?

Спасибо.

+3

Google 'strcmp()' –

+2

Вы действительно могли бы попытаться исследовать его немного сложнее по своему усмотрению. – StoryTeller

+0

для массивов типов C, '==' будет сравнивать указатели. Для сравнения вам нужно использовать strcmp. –

ответ

1

Предполагая, что CDdata[i].artist и search являются char* или const char*, все, что вы сейчас делаете это сравнение указатели а не значения.

Вам нужно использовать что-то вроде if (strcmp(CDdata[i].artist, search)), которое вернет 0 для равенства.

strcmp является стандартной функцией в стандартной библиотеке C.

1

Вы можете использовать функцию strcmp в стандартной библиотеке c.

if (strcmp(CDdata[i].artist, search) == 0) 
+0

Есть ли другой способ, я уверен, что мне не разрешено использовать #include в моем задании. – LeverArch

+0

Да, вы можете изобрести колесо и реализовать свою версию, но это плохая идея. 'strcmp' находится в . – Garee

+0

@ LeverArch: Он упоминается в вашем задании? Я согласен с Гари, повторное использование кода считается хорошей практикой – Enigma