For the OP:
Instead of assigning a character string for every fret of every guitar string, why not just represent notes as ints with C as 0 up to B as 11, that way you can simply represent the guitar strings as an array of 6 ints and calculate the note for each fret on the fly, using the note value as a subscript on an array of char pointers which point to string representations of each note. Probably easier to show some code than explain it. This prints the notes on each string up to the 12th fret, for example:
Code:
#include <stdio.h>
int main(void)
{
char *notes[] = {"C", "C#/Db", "D", "D#/Eb", "E", "F",
"F#/Gb", "G", "G#/Ab", "A", "A#/Bb", "B"};
int strings[6] = {4, 9, 2, 7, 11, 4};
int i, j;
for (i = 5; i > -1; i--)
{
printf("%s string: ", notes[strings[i]]);
for (j = 0; j < 13; j++)
printf("%-8s", notes[(strings[i] + j) % 12]);
printf("\n");
}
return 0;
}
It doesn't help to explain things when you're dealing with both C strings and guitar strings btw!