B2122 单词翻转
[B2122 单词翻转](https://www.luogu.com.cn/problem/B2122?contestId=150480
B2122 单词翻转
题意
输入一串字符,将它倒着输出,但是,单词之间要换行,才能输出。
思路
- 先写for循环,
- 在往上加while循环。
- 定义i=字符串的长度,i>=0将一个个倒过来输出。遇到空格时,表示这组字符串结束,就将其输出。
坑点
- 输出有点意思,要分开输出,先在for循环里输出单词,在while循环,输出换行符。
- 单词要输出一个要换行。并且是第一个单词为第一行,而不是最后一个单词是最后一行。
- 字符串的数组,定义。
算法一:字符串的输入,输出
时间复杂度
- 输出大小: 1.83216381072998 MiB
- 编译时间: 0.97s
实现步骤
- 字符串的定义用string,字符串数组的定义用char[确定数字],
- while循环一个个输入字符串,for循环将字符串倒过来。
- 数组下标从0开始,若>0,只能输出hell和worl,若>=0,可以输出hello和world。
代码
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{string s;while(cin>>s){for(int i=s.length()-1;i>=0;i--)//数组下标从0开始,若>0,只能输出hell和worl {cout<<s[i];//若>=0,可以输出hello和world }cout<<endl;}return 0;
}
总结
简单,但有点坑,要多思考思考一下,怎么才能换行输出,怎么才能第一个输出第一个单词,而不是最后一个。for循环里的条件要好好思考一下。