我剛剛學習了C,並得到了一份任務,我們必須將純文本翻譯成莫爾斯電碼並返回。 (我大多熟悉Java,因此對我使用的術語感到滿意)。C中的重音/混音字符?
要做到這一點,我有一個所有字母的字符串數組。
char *letters[] = {
".- ", "-... ", "-.-. ", "-.. ", ".", "..-." etc
我寫了一個函數,用於返回所需字母的位置。
int letter_nr(unsigned char c)
{
return c-97;
}
這是行得通的,但分配規範要求處理瑞典默認字母åäö。瑞典字母和英文一樣,最後還有這三個字母。我試圖檢查這些,就像這樣:
int letter_nr(unsigned char c)
{
if (c == 'å')
return 26;
if (c == 'ä')
return 27;
if (c == 'ö')
return 28;
return c-97;
}
不幸的是,當我試圖測試這個功能,我得到了相同的值所有這些三:98這是我的主,測試功能:
int main()
{
unsigned char letter;
while(1)
{
printf("Type a letter to get its position: ");
scanf("%c", &letter);
printf("%d\n", letter_nr(letter));
}
return 0;
}
我能做些什麼來解決這個問題?
什麼編譯器和OS ? – 2009-11-12 20:41:56
XCode(Mac OS X)。 – 2009-11-12 21:01:05
我也有OS X.而且我的波蘭語字母只有同樣的問題:) – 2009-11-12 21:09:27