连接字符串之间没有空格

时间:2015-01-31 15:33:20

标签: c++ string

我一直在尝试在连接字符串上编写此代码:

#include<iostream>
#include<string>
using namespace std;

int main (){
    string line, total;
    //Read strings from the input//
    cout<<"Enter a String"<< endl;
    while(getline(cin,line)){
        cout<< "Enter another String"<< endl;
        if(!line.empty())
        total+=line;
        cout<<" Concatenated string is\t"<<total<< endl;
    }

    return 0;
}

但是,我的输出在两个附加字符串之间没有空格。我还需要一种方法来终止添加的字符串。

3 个答案:

答案 0 :(得分:1)

运营商+=不会为您添加空间。 您需要明确添加空格,例如total += " " + line;

答案 1 :(得分:1)

+=不会自动在两个字符串之间添加空格。您需要手动添加它。

这样的事情:

total += " " + line;

此外,本文还提供了有关+ =运算符的示例说明。 http://www.cplusplus.com/reference/string/string/operator+=/

答案 2 :(得分:0)

  

&#34;但是,我输出的两个附加字符串之间没有空格。&#34;

要在连接的字符串之间添加空格,只需添加它们

 total += ' ' + line;
       // ^^^
  

&#34;我还需要一种方法来终止添加的字符串。&#34;

要结束循环,您可以在else测试中使用if(!line.empty())语句获得break;分支。
当输入空字符串时,循环和程序结束。