C++ switch语句有问题;字符常量“中的字符太多”;

C++ switch语句有问题;字符常量“中的字符太多”;,c++,switch-statement,C++,Switch Statement,我对switch语句有一些问题,不知道如何解决: string phrase; cout << "enter a phrase:\n"; getline(cin, phrase); for (unsigned int i = 0; i < phrase.length(); i++) { switch (phrase[i]) { case '-----':

我对switch语句有一些问题,不知道如何解决:

    string phrase;

    cout << "enter a phrase:\n";
    getline(cin, phrase);
    for (unsigned int i = 0; i < phrase.length(); i++)
    {
        switch (phrase[i])
        {
        case '-----':
            cout << "0";
            break;
        }
    }
字符串短语;
cout
字符串短语;
整数和=0;

不能将
'-'
更改为正确的内容。你想做什么?(s“”(6)),但不能打开字符串。1。不能与case语句中的字符串进行比较。2.您正在打开一个字符,为什么要将其与字符串进行比较。3.你想实现什么?C++不是JavaScript。你不能在C++中切换一个字符串。使用if-then-else链。事实上,我想创建一个程序,我可以输入摩尔斯电码,并给我正确的翻译,但一些字符或数字是5/6位长,如果我使用if-then-else链,我给我错误。你可以使用一个变量来跟踪字符“-”的运行总数。每当它检测到字符“-”时,递增它。然后,您可以使用if条件测试此变量,并在变量包含您选择的特定值时显示“0”。这将是一个混乱,因为有很多选项,也因为一些数字/字符具有相同的-和数字。只有位置改变了
string phrase;
int sum=0;
cout << "enter a phrase:\n";
getline(cin, phrase);
for (unsigned int i = 0; i < phrase.length(); i++)
{   
    
    switch (phrase[i])
    {
    case '-':sum+=1;
        if (sum%5==0)
        cout << "0";
        break;
    }
}