我似乎无法使.indexOf()为我的char数组工作

时间:2017-06-30 09:13:53

标签: c++ arrays string arduino char

我需要从我的第二个数组(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]'

1 个答案:

答案 0 :(得分:2)

莫尔斯是一个char数组。 indexOf是一个字符串(类)方法。

你可以试试这个:

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等......

奖金,这是不区分大小写的