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