前言

试了好几种方法,郁闷死了

题目

7-20 说反话-加强版 (20分)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。

输出格式:

每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。

输入样例:Hello World Here I Come

输出样例:Come I Here World Hello

处理方案

1.超大二维数组,每个一维子数组存储一个单词,倒着输出。(部分超时,部分格式错误,部分正确,我看着格式没毛病啊

)

2.递归(部分段错误,格式错误,这格式真不好处理,搞了半天放弃了

)

3.超大一维数组,倒着输出(处理上麻烦点, 但还是比较容易实现,全部正确

)

超大一维数组处理

1.让一个指针变量指向字符串最后一位

2.向前扫描,去掉结尾的空格

3.向前扫描,遇到  前一个字符为空格 就输出  当前地址的单词

4.重复2 & 3 直到p指向首地址

字符串的可能情况:

N个空格-单词-N个空格-单词-N个空格

我的答案

#include

#include

int main(void)

{

char string[500001];

char *p;

//将字符串的首地址赋给p

p = gets(string);

//将p移动到最后一位

p = p + strlen(string) - 1;

//去除结尾的空格

while(*p == ' ')

{

*p = '\0';

p--;

}

//core

while (p > string)

{

//判断前一个字符是否为空格

if(*(p - 1) == ' ')

{

//前一个字符是空格!!!

printf("%s", p);

//删除前方空格

while(*(p - 1) == ' ')

{

*(p - 1) = '\0';

p--;

}

//控制空格输出

/*

* 为什么判断是不是首地址?

* 输出原字符串的第一个单词时,不管前面有几个空格都会被消去,使指针变量p指向字符串首地址

*/

if(p != string)

printf(" ");

}

p--;

}

//用于字符串开头没有空格的时候输出源字符串第一个单词

printf("%s", p);

return 0;

}

祭夜の咖啡馆 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:[C语言-PTA]说反话-加强版 — 字符串的指针式处理

C语言大作业指针字符串处理,[C语言-PTA]说反话-加强版 — 字符串的指针式处理 | 祭夜の咖啡馆...相关推荐

  1. 西工大c语言大作业题目,西工大c语言大作业.ppt

    <西工大c语言大作业.ppt>由会员分享,可在线阅读,更多相关<西工大c语言大作业.ppt(43页珍藏版)>请在人人文库网上搜索. 1.二项系数1.二项式系数C(n,k)因其在 ...

  2. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  3. c语言大作业书店图书管理系统,C语言_课程设计—书店图书管理系统.doc

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24日 一.选题背景: 设计一个图书管理系统,管理员通过登陆账 ...

  4. c语言大作业书店图书管理系统,C语言课程设计书店管理系统.pdf

    计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一个图书管理系统,管理员通过登陆 ...

  5. 桂林电子科技大学C语言大作业,桂林电子科技大学c语言程序设计习题集及答案qvzaewzm.doc...

    桂林电子科技大学c语言程序设计习题集及答案qvzaewzm 一 单项选择题(每题2分,共44分) 1 以下叙述正确的是__C_. A C程序基本组成单位是语句 B C程序每一行只能写一个语句 C 简单 ...

  6. c语言大作业教室预约管理系统,C语言程序设计——教室管理系统(源代码))

    C语言程序设计--教室管理系统(源代码) 非常有用的. #include #include #include #define szSTR 64 #define fileDB "c:\\con ...

  7. c语言大作业走迷宫,基于C语言实现简单的走迷宫游戏

    本文实例讲述了C语言实现简单的走迷宫游戏的方法,代码完整,便于读者理解. 学数据结构时用"栈"写的一个走迷宫程序,实际上用到双向队列,方便在运行完毕后输出经过的点. #includ ...

  8. 学生证选课系统c语言大作业,学生选课管理系统c语言程序

    #include #include #include int N1,N2; struct couse * head1; struct student * head2; struct couse //课 ...

  9. c语言大作业酒店管理系统,用C语言编写的酒店管理系统

    #include #include #include int max=1;//用于计数用户登录 int room[5][5];//声明一个2维数组保留每个房间的入住 int jishi[5][5];/ ...

  10. C语言大作业——匹配系统

    c语言大作业,匹配系统,开了三个线程,c89,需要支持pthread.h库. 文件1 color.h #include <windows.h> const WORD FORE_BLUE = ...

最新文章

  1. 关于60枚一分两分五分硬币凑成一块钱的解决方法
  2. token、cookie是什么
  3. sqlserver 安装共享功能什么意思_手表上的小表盘,大表盘是什么意思?它们可以带来哪些好玩的功能...
  4. Same Sum Blocks
  5. python中的常量_Python中的变量和常量
  6. ssm 退出登录 java_【Java】ssm Dao层无返回 函数始终不退出
  7. Python面试题【315+道题】
  8. R中安装LightGBM(Windows 64位)
  9. 【BZOJ-2888】资源运输 LCT + 启发式合并
  10. 看jQuery源码的技巧
  11. 小米 无线 linux 鼠标,便捷好用的小米无线鼠标,据说用完一键退回就离不开了...
  12. 【随笔记】Deepin20 Linux 下安装编译NGINX
  13. python3 爬取今日头条文章(巧妙避开as,cp,_signature)
  14. Android获取设备序列号的方法与调用方式
  15. 《Effective Modern C++》笔记
  16. pep8 python 编码方式_PEP8 Python 编码规范整理
  17. 短线看盘比较有效的方法
  18. 当了一次人肉SMT贴片机后的感悟
  19. 弱监督学习 weakly supervised learning 笔记
  20. Ubuntu1504-cuda8.0-caffe安装教程(Titan X Pascal)

热门文章

  1. 阿里云要引领数据库市场?这话没毛病
  2. LaTeX参考文献_解决问题:Something‘s wrong--perhaps a missing \item. \end{thebibliography}
  3. 权变理论计算机管理理论,权变理论是什么意思?权变管理理论的介绍与应用
  4. phyton题库+解析
  5. 1031. 高一学堂 (at)
  6. HC05和电脑蓝牙通讯
  7. Invalid bound statement (not found)错误解决方法
  8. NEO dapp开发系列课程 第一组 第二讲
  9. nu.xom:Element
  10. JS实现环绕地球飞行的3D飞行线动画效果(JS+HTML)