// #include <sstream>
// stringstream 是 C++ 提供的另一个字串型的串流(stream)物件,包含在上述头文件中
// 先谈它在字符串处理方面的应用之一,简化普通语法的复杂描述实现
// 现在我输入一个字符串
// s="what is your name? my name is yyy!";
// 现在任务是把上面的这个字符串里面的单词廍剥离出来,非字母的字符全部跳过
/*
sample output:
what
is
your
name
my
name
is
yyy */
代码如下:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string s, buf;
getline(cin, s); //读入一行字符串直到接收到\n为止,和gets()函数一样
for(int i=0; i<s.size(); i++)
{
if( !isalpha(s[i]) )
{
s[i]=' '; //非字母的字符全部转换成空格,方便下面的流操作
}
}
stringstream ss;
ss<<s;//将源字符串s读取到定义名字的ss流里
while(ss>>buf)//将ss流读取出来,ss流遇到空格或者\n会进行间隔分开,这也就是为什么上面
{ //要把非字母的字符转化成空格了
cout<<buf<<endl; //输出一个单词串
}
return 0;
}