我想对字符串数组进行空格/返回检查。还有一点我想......
用户输入两行,都是字符串。为了适应这两行,而不是制作两个单独的字符串变量,我创建了一个名为string x[2]
的字符串数组。然后输入被合并到一个名为string combined
的变量中,然后在一行上输出所有内容。
无论如何,我希望程序允许每一行有多个字符串,即第一行是I like tuna
,第二行是blah blah
。我试图使它成为像x[2][3]
这样的多维数组,但如果它们只输入一行中的一个单词,那么它会强制它们进入更多行,直到数组完全填满。
我希望用户在每行中最多输入3个单词,最多输入两行。所以这不意味着我必须检查空格和退货吗?如果是这样,怎么样?
我不想让这个帖子无代码,所以对于某些参考点,这是我的原始代码,它只允许他们每行输入一个单词和两行:
int main()
{
string x[2], combined;
for (int i = 0; i < 2; ++i)
{
cin >> x[i];
if (i == 0) combined = x[0];
else
combined += " " + x[i];
}
cout << combined << endl;
}
/*
程序:
Hello
World
Hello World
Press any key to continue...
如果这个帖子/问题非常含糊不清,我很抱歉,我似乎没有多想,但我是初学者,并且无法弄清楚这一点。谢谢你的时间!
答案 0 :(得分:3)
使用getline
for (int i = 0; i < 2; ++i)
{
getline(cin, x[i]);
}
答案 1 :(得分:2)
使用getline
读取整行输入
string x[2];
cout<<"input first string"<<endl;
getline(cin, x[0]);
cout<<"input second string"<<endl;
getline(cin, x[1]);
cout<<"Printing first string "<<x[0]<<endl;
cout<<"Printing second string "<<x[1]<<endl;
答案 2 :(得分:0)
在C中有一个类似的问题。如果用户输入带空格的字符串(因为会出现错误),你就不能使用scanf(),你必须使用不安全的gets()。