C++版浙大PAT乙级1009(20分)

本文介绍了使用C++实现字符串逆序输出的方法。通过两种不同的实现方式,展示了如何读取和处理输入的英文句子,并将其单词逆序输出。第一种方法较为复杂,涉及字符串分割;第二种方法简洁明了。

https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960

3.9改进版本

#include<iostream>
#include<string>
using namespace std;

int main(){
	int i=0;
	string str, str_arr[40];
	while(cin >> str){
		str_arr[i++] = str;
		if(getchar() == '\n')
			break;
	}
	for(i--; i>=0; i--){
		cout << str_arr[i];
		if(i!=0)
			cout << " ";
	}
	return 0;
}

原版

题意就是输入一句英文(字符总数不超过80),输出反序的英文。看上去很简单,但是因为对C++语法不太熟悉,老是出小错误,所以花了一些时间。

方法一:这是最开始不熟悉语言导致写的很复杂。

#include<iostream>
#include<string>
using namespace std;

int main(){
	string str, str_arr[40];
	getline(cin, str);
	int i, j, p=0, k=0, flag = 0;
	while(p<str.size()+1){
		if(str[p] != ' ' && flag == 0){
			i = p;
			flag = 1;
		}else if(flag == 1){
			j = p;
		}
		if(str[p] == ' ' && flag == 1 || p == str.size() && flag == 1){
			flag = 0;
			str_arr[k++] = str.substr(i, j-i);
		}
		p ++;
	}

	for(int i=39; i>=0; i--){
		if(!str_arr[i].empty()){
			cout << str_arr[i];
			if(i!=0)
				cout << " ";
		}
	}
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值