6.英文字母排序 (20分)

本文介绍了一个简单的程序设计任务:创建一个程序,该程序能够接收包含大写英文字母和其他字符的字符串,并将其中的大写字母按字母顺序进行重新排序,同时保持其他字符的位置不变。该程序适用于不超过60个字符的英文短句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目内容:
 "编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同。
并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。"
输入描述
一个字符串,包括大写英文字母,以及其他字符

输出描述
字符串的重新排列,只是大写字母按字典顺序,其他字母保持原位

输入样例
THE PRICE OFBREAD IS ¥1 25 PER POUND

输出样例

ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU

#include <stdio.h>
#include <iostream>
using namespace std;
int main(){
	char c;
	char s[100],sum[100]={0},zs[100]={0};
	int n=0,i,j,czy;
	c=getchar();
	while(c!='\n'){
		s[n++]=c;
		c=getchar();
	}
	for(i=0;i<n;i++){
		if(s[i] < 65 || s[i] > 90){
			sum[i] = s[i];
		}
		else{
			sum[i] = '0';
			zs[i] = s[i];
		}
	}
//	for(i=0;i<n;i++){
//		cout<<sum[i];
//	}
//	cout<<endl;
//	for(i=0;i<n;i++){
//		cout<<zs[i];
//	}
//	cout<<endl;
	for(i=0;i<n-1;i++){
		for(j=0;j<n-i-1;j++){			
			if(zs[j]>zs[j+1]){
				char temp = zs[j];
				zs[j] = zs[j+1];
				zs[j+1] = temp;
			}
		}
	}
	for(i=0;i<n;i++){
		if(zs[i]>=65){
			czy=i;
			break;
		}
	}
//	cout<<czy;
	for(i=0;i<n;i++){
//		cout<<zs.[i];
//		for(j=czy;j<n;j++)
			if(sum[i]=='0'){
				sum[i]=zs[czy++];
			}					
	}
	for(i=0;i<n;i++){
		cout<<sum[i];
	}		
	return 0;
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值