在字符串中显示空格

时间:2012-08-06 09:25:29

标签: c++ string

我忙于实践。我必须输入字符串或消息,并将其转换为摩尔斯电码: 'A'= .- 'B'= -... ECS。

通过使用一系列if语句,我可以毫无问题地做到这一点。

for(int i = 0;i < stringvalue.length();i++)
{
    if(stringvalue == 'A')
        cout << ".-";
        //there is 26 if statements

}

但是当我输入一个字符串时,例如

"Testing data"

只有字符串的第一部分被转换(测试被转换)为莫尔斯。

为什么不在空格后转换零件。如果字符串中有空格,则必须输出“/”。

2 个答案:

答案 0 :(得分:3)

如果您的输入例程如下所示:

std::string input;
std::cin >> input;

输入被读取到第一个空格字符。要阅读整行,您可以使用std::getline

std::getline(std::cin, input);

答案 1 :(得分:2)

因为您正在使用stdincin >> stringvalue读取字符串。 C ++ operator>>(istream, string)在空白之后停止;它一次只读取一个以空格分隔的标记。

相反,请使用getline

std::getline(std::cin, stringvalue);