【发布时间】:2014-02-05 15:16:42
【问题描述】:
这是莫尔斯电码程序。
我收到too many initializers for char b[] 的错误。我怎样才能摆脱这个错误?
#include<iostream>
using namespace std;
int main(){
char a[72]={'A','a','B','b','C','c','D','d','E','e','F','f','G','g','H','h','I','i','J','j','K','k','L','l','M','m','N','n','O','o','P','p','Q','q','R','r','S','s','T','t','U','u','V','v','W','w','X','x','Y','y','z','Z','0','1','2','3','4','5','6','7','8','9','.',',','?','\'','!','/','(',')','&','@'};
char b[]={".-",".-","-...","-...","-.-.","-.-.","-..","-..",".",".","..-.","..-.","--.","--.","....","....","..","..",".---",".---","-.-","-.-",".-..",".-..","--","--","-.","-.","---","---",".--.",".--.","--.-","--.-",".-.",".-.","...","...","-","-","..-","..-","...-","...-",".--",".--","-..-","-..-","-.--","-.--","--..","--..","-----","-----",".----",".----","..---","..---","...--","...--","....-","....-",".....",".....","-....","-....","--...","--...","---..","---..","----.","----.",".-.-.-",".-.-.-","--..--","--..--","..--..","..--..",".----.",".----.","-.-.-","-.-.--","-..-.","-..-.","-.--.","-.--.","-.--.-","-.--.-",".-...",".-..."};
char c[40];
cout<<"Enter code ";
cin.getline(c,40);
for(int i=0;i<1;i++){
for(int j=0;j<72;j++){
if(b[j]==c[i]){
cout<<a[j];
}
}
}
return 0;
}
【问题讨论】:
-
我建议为此使用
std::map<char, std::string >。这会让事情变得容易得多。这样您就可以通过charmap['a']访问任何字符的莫尔斯电码,其中charmap是您的字符映射 -
".-"本身就是一个字符数组。 -
至于您对 Davids 答案的评论,如果您的老师限制您不使用字符串,您是否考虑过不使用任何字符串表示莫尔斯电码的可能解决方案?看看here 以获得提示。
-
for(int i=0;i<1;i++)-- ?! -
为我的问题投票,因为我的帐户被屏蔽了
标签: c++