C 函数没有返回正确的东西?

标签 c function

我有一个函数可以将月份的前 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/

相关文章:

c - 为什么我的电脑一次性发送超过1514字节的数据包

php - 将php函数放在单独的文件中并从另一个文件中调用

function - powershell 有没有办法捕获所有命名参数

c - C/函数调用中的序列点

c - 合并排序的更好方法是什么?递归函数还是非递归函数?

c - Scanf_s 读取错误的输入

javascript - 如何创建一个提取不同长度字符串的中间到末尾的函数?

php:将数字转换为字母,反之亦然

javascript - JS函数最后一行需要 'return'吗?

c - 为什么 MATLAB 使用列优先顺序?