Медведь со мной, как я относительно новым для C.Передача строки символов в качестве параметра функции в C
Я пытаюсь создать функцию, которая могла бы взять имена музыкальных нот (т.е. D или D #) в качестве аргумента, и вернуть значение соответствующего номера ноты миди (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);
Надеюсь, это доносит мысль о том, что я пытаюсь добиться. Я исследовал указатели и массивы, но я не вижу, как это относится к тому, что я делаю.
Любая помощь массово ценится!
Вы используете одинарные кавычки '' 'для символа * символа * и двойные кавычки' '' для строковых литералов. –
Это даже не компилируется. Несоответствующие типы, точка с запятой и т. Д. – interjay
Также подумайте о различии между операторы сравнения и назначения. –