3
我一直在尝试“给定月份有多少天”。错误的字符串传递给函数时
我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