我有一个函数可以将月份的前 3 个字母转换为数字(Jan = 1,Feb = 2,等等)。
int convertDate(char date[3])
{
printf("%s", date);
if(date == 'Ian')
return 1;
else
if(date == 'Feb')
return 2;
else
if(date == 'Mar')
return 3;
else
if(date == 'Apr')
return 4;
else
if(date == 'Mai')
return 5;
else
if(date == 'Iun')
return 6;
else
if(date == 'Iul')
return 7;
else
if(date == 'Aug')
return 8;
else
if(date == 'Sep')
return 9;
else
if(date == 'Oct')
return 10;
else
if(date == 'Noi')
return 11;
else
if(date == 'Dec')
return 12;
else return 0;
}
但是,当我在 main() 中使用时:
printf("%d", convertDate("Ian"));
它返回 0 而不是 1。其他月份也一样。有什么建议吗?
最佳答案
比较char*
时使用strcmp()
。
if (date == "Sep")
比较 char*
的基地址。
关于C 函数没有返回正确的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8649907/