// #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); //读入一行字符串直到接收到 为止,和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流遇到空格或者 会进行间隔分开,这也就是为什么上面 { //要把非字母的字符转化成空格了 cout<<buf<<endl; //输出一个单词串 } return 0; }