PTA基础编程题目集 7-32 说反话-加强版

#include <iostream>
#include <string>

using namespace std;

int main()
{
	string input;
	getline(cin, input);

	if (input.length() == 0) return 0;		//空句子情况

	int i = input.length() - 1;
	input += " ";					//加一个空格防止访问下标越界

	bool first = true;				//输入第一个单词标志
	bool init = true;				//清楚结尾空格标志

	while (i >= 0) {

		while (input[i] == ' ' && init == true) {			//忽略掉结尾的空格
			i--;
			continue;
		}

		init = false;

		if (input[i] == ' ') {

			int j = i + 1;

			if(!first) 	cout << " ";
			while (input[j] != ' ') {				//输出单词
				cout << input[j];
				j++;
			}


			while (input[i] == ' ') {				//忽略掉句子间多余的空格
				i--;
				if (i < 0) break;
				continue;
			}

			first = false;

		}

		i--;
	}

	if (input[0] != ' ') {						//输出最后一个词
		int j = 0;
		if (!first) 	cout << " ";
		while (input[j] != ' ') {
			cout << input[j];
			j++;
		}

	}


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值