【问题标题】:Too many initializers for char b[]char b[] 的初始化程序太多
【发布时间】: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&lt;char, std::string &gt;。这会让事情变得容易得多。这样您就可以通过charmap['a'] 访问任何字符的莫尔斯电码,其中charmap 是您的字符映射
  • ".-" 本身就是一个字符数组。
  • 至于您对 Davids 答案的评论,如果您的老师限制您不使用字符串,您是否考虑过不使用任何字符串表示莫尔斯电码的可能解决方案?看看here 以获得提示。
  • for(int i=0;i&lt;1;i++) -- ?!
  • 为我的问题投票,因为我的帐户被屏蔽了

标签: c++


【解决方案1】:

您说过bchar 的数组。但是您提供的是字符串文字而不是单个字符。不可能知道你真正想要做什么。也许您实际上希望 b 是一个字符串数组:

const char* b[] = {".-", ".-", "-...", "-...", ...};

【讨论】:

  • const char* b[] = {".-", ".-", "-...", "-...", ...};这行得通吗?我必须编写摩尔斯电码程序,但我的导师限制我不要使用字符串。
  • 你的老师讨厌他的学生吗?!不使用字符串确实是有害的。无论如何,它就是这样。
  • @ArtizaAli '被我的导师限制不能使用字符串' 可以按照morse alphabet tree 的想法在不使用任何字符串文字的情况下解决任务。
  • 他总是给我们挑战任务
  • 大卫你上面告诉我的方法是有效的,但是当我在输出中输入代码时,整个代码
【解决方案2】:

char 数组不能包含字符串!你应该用单独的chars 来初始化它!

例如:char b[] = { 'I', 'O', 'U' };

当您需要字符串文字时,可以使用以下内容:

const char* b[] = { "II", "OO", "UU" };

【讨论】:

    【解决方案3】:

    b 应该是 const char* 的数组,或者您应该将 char 放入初始化列表而不是字符串文字。

    const char* b[]={".-",".-", ...}
    

    char b[] = {'a', 'b', ...};
    

    【讨论】:

    • 请收件箱我的语法。你想告诉我的
    【解决方案4】:

    您不是试图将chars 存储在b 中,而是存储字符串。将b 声明为const char *b[72] = ...

    【讨论】:

    • const char *b[],而是。字符串文字不得修改。
    【解决方案5】:

    static const 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', '.', ',', '?', '\'', '!', '/', '(', ')',
        '&', '@'
    };
    
    static const char *b[] =
    {
        ".-", ".-", "-...", "-...", "-.-.", "-.-.", "-..", "-..", ".", ".",
        "..-.", "..-.", "--.", "--.", "....", "....", "..", "..", ".---", ".---",
        "-.-", "-.-", ".-..", ".-..", "--", "--", "-.", "-.", "---", "---",
        ".--.", ".--.", "--.-", "--.-", ".-.", ".-.", "...", "...", "-", "-",
        "..-", "..-", "...-", "...-", ".--", ".--", "-..-", "-..-", "-.--", "-.--",
        "--..", "--..", "-----", "-----", ".----", ".----", "..---", "..---", "...--",
        "...--", "....-", "....-", ".....", ".....", "-....", "-....",
        "--...", "--...", "---..", "---..", "----.", "----.", ".-.-.-",
        ".-.-.-", "--..--", "--..--", "..--..", "..--..", ".----.", ".----.",
        "-.-.-", "-.-.--", "-..-.", "-..-.", "-.--.", "-.--.", "-.--.-", "-.--.-",
        ".-...", ".-..."
    };
    

    我想它会帮助你...

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 2012-01-31
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2014-02-04
      • 2014-12-25
      相关资源
      最近更新 更多