Это даже не должно компилироваться. Вы сравниваете значение char*
(date
) со значением int
('Ian'
).
Это:
'Ian'
не является строковым литералом. Это многосимвольная символьная константа, и ее значение определяется реализацией. Едва ли имеет смысл использовать его.
Я предполагаю, что код, который вы разместили, не тот код, который вы скомпилировали. Вот почему вы должны скопировать и вставить в свой вопрос тот же код, который вы указали компилятору.
Как уже говорили другие, при сравнении строк вам нужно использовать strcmp()
, а не ==
- что означает, что вы не можете использовать оператор switch
.
Вы также должны знать, что объявление параметра
char date[3]
точно соответствует
char *date
3
тихо игнорируется, и если вы позвоните dateCompare("Ianxyzfoobar")
, date
будет указывать на строку длиной 12.