Объявление функции должно выглядеть следующим образом:
size_t get_note_index( const char *a[], size_t n, const char *s );
То есть вы должны передать количество элементов в массиве, которое будет использоваться в al oop внутри функции.
Если строка не найдена, функция возвращает позицию после последнего элемента массива.
Вот демонстрационная программа.
#include <stdio.h>
#include <string.h>
size_t get_note_index( const char *a[], size_t n, const char *s )
{
size_t i = 0;
while ( i < n && strcmp( a[i], s ) != 0 ) ++i;
return i;
}
int main(void)
{
const char * NOTES[] =
{
"A", "Bb", "B", "C", "Db", "D", "Eb", "E", "F", "Gb", "G", "Ab"
};
const size_t N = sizeof( NOTES ) / sizeof( *NOTES );
const char *s = "Db";
size_t pos = get_note_index( NOTES, N, s );
if ( pos != N )
{
printf( "The index of the string \"%s\" is %zu\n", s, pos );
}
else
{
printf( "The string \"%s\" is not found\n", s );
}
s = "Bd";
pos = get_note_index( NOTES, N, s );
if ( pos != N )
{
printf( "The index of the string \"%s\" is %zu\n", s, pos );
}
else
{
printf( "The string \"%s\" is not found\n", s );
}
return 0;
}
Вывод программы:
The index of the string "Db" is 4
The string "Bd" is not found