2017-06-30 41 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,等...

獎金,這是不區分大小寫