Я пытался «Сколько дней в данном месяце».Неправильная строка при передаче функции
Мой main
выглядит следующим образом:
int main(void) {
int numberOfDays, month = 0;
char* input = (char*) malloc(10);
printf("Please enter a month (\"1\", \"Jan\", \"January\", \"jan\" or \"january\" etc.):\n> ");
scanf(" %s", input);
selectMonth(input);
switch (month) {
case 1:
numberOfDays = 31; break;
...
default:
numberOfDays = 0;
printf("Invalid month.\n");
}
...
И selectMonth
:
int selectMonth(char* input) {
int month = 0;
if (!strcasecmp(input, "jan") || !strcasecmp(input, "january") || !strcasecmp(input, "1")) {
month = 1;
}
...
return month;
}
Когда я положил содержимое selectMonth
внутри main
, он прекрасно работает. Но когда у меня есть отдельная функция для else/ifs и возвращает месяц, коммутатор переходит прямо к случаю по умолчанию. Почему?
Буду признателен за любую помощь!
Это было быстро! Большое спасибо, я этого не замечал! Я отмечу ваш ответ, когда смогу через 10 минут! Спасибо! :) – jmkjaer
@Dradee: Без проблем! Прокомментируйте здесь, если у вас есть другие связанные проблемы :). – 3442