【问题标题】:I can't seem to make .indexOf() work for my char array我似乎无法让 .indexOf() 为我的 char 数组工作
【发布时间】:2017-12-04 04:47:41
【问题描述】:

我需要从我的第二个数组 (morsecode) 中获取一个字符串,但我需要知道我可以从我的第一个数组 (morse) 中获取的字母的索引。

这些是我的数组:

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 请求'morse'中的成员'indexOf',它是非类类型'char [27]'

【问题讨论】:

  • morse 是一个char 数组,它没有任何成员。
  • 也许你应该把morse改为String
  • @Someprogrammerdude 我将莫尔斯和字母更改为字符串。现在我得到这个错误:退出状态1 request for member 'indexOf' in 'morse', which is of non-class type 'String [27]'
  • 设为String,而不是String [27]
  • String morse = " abc..."

标签: c++ arrays string arduino char


【解决方案1】:

morse 是一个字符数组。 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);
}

摩尔斯电码[a - 'a'];是一种快速返回 ASCII 字符位置的方法。 a=0、b=1 等...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多