C++实现英文句子中的单词逆序输出的方法

本文实例讲述了C++实现英文句子中的单词逆序输出的方法。分享给大家供大家参考,具体如下:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main(int arc, char** argv)
{
 string str="I come from liaoning.";
 stack<string> works;
 int len=str.length();
 while(1)
 {
  int start=str.find_first_not_of(" ");
  int end=str.find_first_of(" ");
  int wlen=end-start;
  if(end!=-1)
  {
   string temp=str.substr(start,wlen);
   works.push(temp);
  }
  else
  {
   works.push(str);
   break;
  }
  str=str.substr(end+1,len-wlen);
 }
 while(!works.empty())
 {
  string temp=works.top();
  cout<<temp<<" ";
  works.pop();
 }
 cout<<endl;
 system("pause");
 return 0;
}

运行效果图如下:

希望本文所述对大家C++程序设计有所帮助。

您可能感兴趣的文章:

  • C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析
  • C++求逆序对的方法
  • C/C++ 双链表之逆序的实例详解
  • C++使用递归函数和栈操作逆序一个栈的算法示例
  • C/C++ 实现递归和栈逆序字符串的实例
  • C++统计中英文大小写字母、数字、空格及其他字符个数的方法
  • C++实现翻转单词顺序
  • C++实现在文本中找出某个单词的位置信息
  • 用c++实现将文本每个单词首字母转换为大写
  • 用C++实现,将一句话里的单词进行倒置的方法详解
(0)

相关推荐

  • C++统计中英文大小写字母、数字、空格及其他字符个数的方法

    本文实例讲述了C++统计中英文大小写字母.数字.空格及其他字符个数的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 28 日 * 版 本 号:v1.0 * 输入描述: * 问题描述: 有一篇文章,共有三行文字,每行有80个字符.要求分别统计出其中英文大写字母.小写字母.数字.空格以及其他字符的个数. * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> using namespace std;

  • C/C++ 双链表之逆序的实例详解

    C/C++ 双链表之逆序的实例详解 一.结点结构 双向链表的数据结构定义如下: typedef struct node { ElemType data; struct node *prior struct node *next; }list; 其中,ElemType可以是任意数据类型如int.float或者char等,在算法中,规定其默认为int类型. 二.带头结点 本文描述的是双向链表逆序,链表逆序需要维护3个指针,分别指向前一个节点.当前节点和下一个节点,具体代码如下: list *reve

  • 用C++实现,将一句话里的单词进行倒置的方法详解

    用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致.比如一句话"I come from tianjin. ",倒置后变成"tianjin. from come I ".C常见的库函数有: 复制代码 代码如下: int  strstr(const char* string,const char* substring)   用于返回主串中子串的位置以后的所有字符.比如主串是"123456789",子串是&quo

  • 用c++实现将文本每个单词首字母转换为大写

    利用C++,读入一个英文文本,并将文本中的每个英文单词首字母大写.本程序练习了从一个文本中读入流,用到了fstream流. 在文本的转换过程中,用到了isalpha()--是否是字母,toupper()--转换为大写字符 这两个函数(针对string对象的单个字符的操作.类似的操作还有isalnum()--是否是字母或数字,iscntrl()--是否是控制字符, isdigit()--是否是数字,isgraph()--是否不是空格,但可以打印,islower()--是否是小写字母, isprin

  • C++使用递归函数和栈操作逆序一个栈的算法示例

    本文实例讲述了C++使用递归函数和栈操作逆序一个栈的算法.分享给大家供大家参考,具体如下: 题目: 一个栈依次压入1.2.3.4.5,那么栈顶到栈底分别为:5.4.3.2.1. 将这个栈逆置后栈顶到栈底分别为1.2.3.4.5. 用递归函数来实现,不能用其他数据结构. 解题思路及代码 1.递归函数一:将栈的栈底元素一个个返回并移除. 2.递归函数二:逆序栈,调用递归函数一实现. C++实现: class Solution { public: //递归函数一 static int getAndRe

  • C++输入一个字符串,把其中的字符按照逆序输出的两种方法解析

    用字符数组方法:基本思路是,先判断字符的结束标志'\0',然后从该位置向前输出.实现代码: 复制代码 代码如下: #include<iostream>using namespace std;int main(){ char a[50]; cout<<"please input a string:"; cin>>a; int i=0,k=0; while(i<50){        if(a[i]=='\0'){         k=i;    

  • C++实现在文本中找出某个单词的位置信息

    代码很简单,功能也很单一,这里就不多废话了,大家直接看代码吧. #include <stdio.h> #include <string.h> int main(int argc,char**argv){ char *token = argv[1]; FILE *fp = fopen("./test.txt","a+"); char buf[1024]; char *p; int s=-1,len=strlen(token),line=0,po

  • C++实现翻转单词顺序

    题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理.例如输入"I am a student.",则输出"student. a am I". 思路:首先将整个句子按字符翻转,然后再将其中每个单词的字符旋转. #include <string> #include "stdafx.h" void Reverse(char *pBegin, char *pEnd

  • C++求逆序对的方法

    本文实例讲述了C++求逆序对的方法,分享给大家供大家参考之用.具体实现方法如下: #include <iostream> #include <vector> using namespace std; int array[] = {3, 9, 7, 4, 5, 2}; const int size = sizeof array / sizeof *array; int temp[size]; //int numbers[size]; int reversePair(int *numb

  • C/C++ 实现递归和栈逆序字符串的实例

    C/C++ 实现递归和栈逆序字符串的实例 递归函数调用模型 逆序方法 void revers(char *buf){ char *p = buf; if (p == NULL) { return; } //递归结束条件 if (*p == '\0') { return; } //递归调用 revers(p + 1); //在字符串的结尾追加n个字符 strncat(buf_g, p, 1); } 调用 int main(int argc, const char * argv[]) { char

随机推荐