我一直在尝试在连接字符串上编写此代码:
#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;
}
但是,我的输出在两个附加字符串之间没有空格。我还需要一种方法来终止添加的字符串。
答案 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;
分支。
当输入空字符串时,循环和程序结束。