C++ switch语句有问题;字符常量“中的字符太多”;
我对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 '-----':
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;
}
}