博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Coursera-C程序设计进阶-编程题#1:单词翻转
阅读量:5051 次
发布时间:2019-06-12

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

编程题#1:单词翻转

 (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

输入一个句子(一行),将句子中的每一个单词翻转后输出。

输入

只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。

输出

翻转每一个单词后的字符串,单词之间的空格需与原文一致 

样例输入

hello world

样例输出

olleh dlrow
#include
#include
using namespace std;int flip(char *, int ,int );int main() { //输入 char str[501]; cin.getline(str,501); int i = 0, k = 0; bool start_flag = true, //新单词开始标志 flip_flag = false; //翻转标志 char word[501] = {
'\0'}; while(str[i]) { if(str[i] != ' ') { //本来判断是否为字母,发现OJ不通过,就稍微宽松些 if(start_flag) { //判断是否为单词的开始处 start_flag = false; flip_flag = false; k = 0; //将记录单词的字符串索引置0 } word[k++] = str[i]; } else { start_flag = true; //翻转单词并输出 if(!flip_flag) { //防止多空格出现重复翻转 word[k] = '\0'; flip(word,0,k-1); cout << word; flip_flag = true; } //输出空格 cout << " "; } ++i; } //最后一个单词(没有进入循环) if(!flip_flag) { word[k] = '\0'; flip(word,0,k-1); cout << word; } return 0;}//单词翻转函数 int flip(char *word, int start, int end) { if(start >= end) return 0; char temp = word[start]; word[start] = word[end]; word[end] = temp; flip(word, ++start, --end); return 0;}

 

 

 

转载于:https://www.cnblogs.com/tonony1/p/4772745.html

你可能感兴趣的文章
Mysql集合笔记
查看>>
HTTPS与SSL数字证书的必要性
查看>>
react之项目目录
查看>>
wamp自定义网站根目录及多站点配置
查看>>
GPT转MBR完整图文教程
查看>>
转载:《TypeScript 中文入门教程》 6、命名空间
查看>>
友情链接
查看>>
JavaScript测试工具
查看>>
QC学习三:Excel数据导入导出QC操作流程
查看>>
Combination Sum II
查看>>
对象数组的练习
查看>>
xamarin android 实现二维码带logo生成效果
查看>>
requirejs amd module load example
查看>>
实验13
查看>>
递归插入排序
查看>>
iOS学习之iOS程序名称及内容国际化(本地化)
查看>>
生产案例、Linux出现假死,怎么回事?
查看>>
树结构(三)---- 多路查找树
查看>>
07深入理解C指针之---指针类型和长度
查看>>
06深入理解C指针之---指针操作和比较
查看>>