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

题目内容:
 "编写一个程序,当输入不超过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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于JS英文字母排序,可以使用sort()方法来实现。其,根据英文首字母进行排序的方法如下所示: ```javascript arr1.sort(function(a, b) { return (a.name.toLowerCase()).localeCompare(b.name.toLowerCase()); }); console.log(arr1); ``` 这段代码将根据英文字母的首字母进行升序排序,并使用localeCompare()方法进行比较。它会忽略大小写,确保在排序过程能正确地排列英文字母。 另外,如果你需要进行多次排序,可以使用multipleSort()方法,如下所示: ```javascript var data = [{ a: 1, b: 'a' }, { a: 2, b: 'c' }, { a: 2, b: 'b' }]; var sorts = [{ key: 'a', order: 'desc' }, { key: 'b', order: 'asc' }]; function multipleSort(data, sorts) { sorts.reverse().forEach(sort => { data.sort(compare(sort.key, sort.order)); }); function compare(key, order) { return function(m, n) { var value1 = typeof(m[key]) == "number" ? m[key] : m[key].charCodeAt(); var value2 = typeof(n[key]) == "number" ? n[key] : n[key].charCodeAt(); if (order === 'desc') return value2 - value1; else return value1 - value2; } } return data; } console.log(multipleSort(data, sorts)); ``` 这段代码可以对指定对象的某个字段进行排序,同时支持按照升序或降序进行排列。你可以根据自己的需求修改数组和排序规则。需要注意的是,对于字段值为字母的情况,可以将字母转换为ASCII码进行处理,也可以截取首字母后再转换为ASCII码来排序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [JS数组对象——英文按照首字母进行排序sort()、localeCompare()](https://blog.csdn.net/XSL_HR/article/details/128579936)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [jssort()字母排序和自定义多列排序](https://blog.csdn.net/qq_34241004/article/details/114464189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值