image.png

    1. #include <iostream>
    2. #include <string>
    3. #include <stack>
    4. using namespace std;
    5. int main()
    6. {
    7. string str;
    8. string str_temp;
    9. stack <string> vec;
    10. int flag = 0;//检索到字母标志
    11. int num = 0;//检索到的字母个数
    12. while(getline(cin,str))
    13. {
    14. str+=" ";//给字符串末尾添加一个非字母元素
    15. for(int i=0;i<str.size();i++)
    16. {
    17. if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
    18. {
    19. flag = 1;//标志检索到字母
    20. num++;
    21. }
    22. else
    23. {
    24. if(flag == 1)//如果检索到字母后被打断
    25. {
    26. str_temp = str.substr(i-num,num);//按照字母数截取
    27. vec.push(str_temp);//入栈
    28. flag = 0;//重置标志
    29. num = 0;//重置字母数
    30. }
    31. }
    32. }
    33. //出栈输出
    34. while(!vec.empty())
    35. {
    36. str_temp = vec.top();
    37. cout<<str_temp;
    38. vec.pop();
    39. if(!vec.empty())
    40. {
    41. cout<<' ';
    42. }
    43. }
    44. }
    45. cout<<endl;
    46. }