将字符串传递给C中的函数参数

时间:2016-04-05 16:56:12

标签: c string function parameter-passing

请耐心等待我,因为我对C来说比较新。

我正在尝试创建一个函数,它可以将音符的名称(即D或D#)作为参数,并使用第二个参数返回其相应的midi音符编号(midi number table)的值对于八度音阶。

但是,我似乎遇到了字符串初始化或在函数中使用它的问题。这是我写的功能:

int midi_number(char note[], int octave)
{
    int midiNumber

    if (note[1] = '#')
    {
        switch(note[0])
        {
        case 'C': case 'c':
        midiNumber = 25;
        break;
        case 'D': case 'd':
        midiNumber = 27;
        break;
        ...
        }
    }
    else
    {
        switch(note[0])
        {
        case 'C': case 'c':
        midiNumber = 24;
        break;
        case 'D': case 'd':
        midiNumber = 26;
        break;
        ...
        }
    }
    return (midiNumber + (octave * 12))
}

然后我按如下方式调用该函数:

midi_number('C#', 1);

希望这能够实现我想要实现的目标。我研究过指针和数组,但我看不出它是如何应用于我正在做的事情。

任何帮助都非常感谢!

1 个答案:

答案 0 :(得分:0)

note[1] = '#' '#'分配给note[1],而非比较它们。

你的if语句中需要note[1] == '#'