我需要从我的第二个数组(morsecode)中获取一个字符串,但我需要知道我可以从第一个数组(莫尔斯)获得的字母索引。
这些是我的阵列:
char morse[27]={' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
String morsecode[27]={",",".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
String words[] = "my message";
这是我尝试访问数组并获取char的索引(这些代码块是循环的):
counter=0;
char letter = words[counter];
letter = toLowerCase(letter);
int location=morse.indexOf(letter);
String code=morsecode[location];
counter++;
每次我尝试编译时都会出现这个错误:
退出状态1 请求'莫尔斯'中的成员'indexOf',这是非类型'char [27]'
答案 0 :(得分:2)
你可以试试这个:
String char_to_morse(char letter)
{
String morsecode[]={".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--", "-..-", "-.--", "--.."};
if ((letter >= 'a') && (letter <= 'z')) return morsecode[a - 'a'];
else if ((letter >= 'A') && (letter <= 'Z')) return morsecode[a - 'A'];
else if (letter == ' ') return " "; // longer space to see different words
else return "ERR";
}
main() {
String words[] = "my message";
int i=0;
String result;
while (words[i])
{
result += char_to_morse(words[i]) + ' '; // use space to separate each morse code.
}
printf(result);
}
morsecode [a - &#39; a&#39;];是一种快速返回ASCII字符位置的方法。 a = 0,b = 1等......
奖金,这是不区分大小写的