2017-06-30 43 views
-2

我需要从我的第二个数组((morsecode))获取一个字符串,但我需要知道我可以从我的第一个数组中得到的字母的索引莫尔斯)。我似乎无法让.indexOf()为我的字符数组工作

这些都是我的数组:

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]'

+4

'morse'是一个'char'阵列,它不具有任何部件。 –

+1

也许你应该用'morse' a *'String' *来代替? –

+0

@Someprogrammerdude我将莫尔斯和字母改为String。现在我得到这个错误检查: 退出状态1 '请求'morse'中的成员'indexOf',它是非类类型'String [27]' –

回答

2

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 - '一'];是一种快速返回ASCII字符位置的方法。 A = 0,B = 1,等...

奖金,这是不区分大小写