概述
1、多行字输入字符串的处理
-
当我们输入一行带空格的字符串,就要考虑getline函数,从流中读入一行字符串。
-
编程题一般输入为:
-
1、输入字符串行数,
-
2、然后再一行一行读入字符串。
-
问题:如果正常顺写编程的话,会发现第一行字符串读入的是空,后续才能正常录入每行字符串。
-
原因:因为第一行输入一个int数据后,换行符并没有被忽略,直接被准备读入第一行字符串的getline俘获。
-
解决:在第一行输入一个int数据后,第一次调用getline()前,调用cin.ignore()忽略下面的一个流录入,将其抛弃。
int N;
cin>>N;
cin.ignore(); //取消换行键的读入
string strCinLine[N];
for(int i =0;i<N;i++)
getline(cin,strCinLine[i]);
2、空格分割一行字符串
以空格为分界点,分成一个个字符串
vector<string> split(string str)
{
vector<string> res;
int pos = 0;//空格位置
int i = 0;
for ( ; i < str.size(); ++i)
{
if (str[i] == ' ')
{
res.push_back(str.substr(pos, i - pos));
pos = i+1;
}
}
res.push_back(str.substr(pos, i - pos));
return res;
}
最后
以上就是知性白开水为你收集整理的多行字输入字符串的处理及空格分割一行字符串 C++ 2021-09-01的全部内容,希望文章能够帮你解决多行字输入字符串的处理及空格分割一行字符串 C++ 2021-09-01所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复