博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
以链表方式实现字符串中的单词顺序反转
阅读量:6042 次
发布时间:2019-06-20

本文共 1659 字,大约阅读时间需要 5 分钟。

hot3.png

// list.cpp : 定义控制台应用程序的入口点。

//
#include "stdafx.h"
#include "string"
#include "iostream"
using namespace std;

//申明结构体变量,链表中每个结构体包括单词部分,与链接指针部分

struct wordElem{    string word;    wordElem  *pre;};

int _tmain(int argc, _TCHAR* argv[])

{
   //由于cin不能读入空格或换行等字符,故在读入前需先做如下语句的申明

 cin.unsetf(ios::skipws);

    char input;

    string word;
    string blanks;
    wordElem *head;
    wordElem *Current;
    wordElem *tempElem;
    head = new wordElem;
    head->pre = NULL;
    Current = head;
    cout<<"Please input a string"<<endl;
    cin>>input;

//读入字符串,并将有效单词存入链表节点中,链表中单词以原字符串的反向顺序保存有效单词

    while (input!= '\n')    {        //读入有效单词存储在word变量中        while ((input >= 'a'&&input <= 'z') || (input >= 'A'&&input <= 'Z') || (input >= '0'&&input<= '9'))        {            word += input;            cin>>input;            if (input == '\n')            {                break;            }        }        //将有效单词存入链表节点中        if (word.length() > 0)        {            tempElem = new wordElem;            tempElem->word = word;            tempElem->pre = Current;            Current = tempElem;            word.clear();        }        //读入分隔符,如空格符或标点符号,忽视分隔符        while (input!='\n' &&!((input >= 'a'&&input <= 'z') || (input >= 'A'&&input <= 'Z') || (input >= '0'&&input<= '9')))        {            blanks += input;            cin>>input;        }    }

//判断字符串是否为空

    if (Current == head)    {        cout<<"This is a sentence with no words!"<

  //反向输出链表里的单词

  else    {        while (Current != head)        {            cout << Current->word << " ";            Current = Current->pre;                    }        cout << endl;            }

    return 0;

}

转载于:https://my.oschina.net/u/1423889/blog/186536

你可能感兴趣的文章
《Python Cookbook(第3版)中文版》——1.3 保存最后N个元素
查看>>
计算机网络面试题集锦(含答案)—“银四”你还不准备好吗
查看>>
Vbox安装增强功能出错
查看>>
Mac SourceTree提交、更新代码到GitHub
查看>>
vue-cli 项目下生成二维码
查看>>
搭建私有仓库-组件开发-笔记
查看>>
go语言教程哪里有?Go从入门到精通系列视频4.1 对称加密算法
查看>>
webpack打包CSS
查看>>
window 安装git
查看>>
we need you
查看>>
解析ws订阅返回的GZIP 压缩数据
查看>>
Docker实战 (二) - Docker环境的搭建方法
查看>>
大数据量文件导入数据库
查看>>
用 Vue 建立一个简单的 electron 桌面应用
查看>>
手写个线程池
查看>>
快速算出移位运算符结果方法
查看>>
Spring Cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
查看>>
给Java初学者的5个学习建议,然而很多人第一个都不具备
查看>>
揭秘 | 双11逆天记录背后的数据库技术革新
查看>>
(十七)Java springcloud B2B2C o2o多用户商城 springcloud架构-消息驱动 Spring Cloud Stream...
查看>>