最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

《編程思維與實(shí)踐》1029.字符排序

2023-04-08 08:31 作者:風(fēng)淺葉墨  | 我要投稿

題目

思路

桶排序的思想,考慮到調(diào)用qsort進(jìn)行排序時是直接移動指針,那么數(shù)組中非字母字符的相對位置其實(shí)會發(fā)生改變,那就不能連帶著非字母字符一起排,故可以考慮將去除大寫字母和空格的字符串存在一個數(shù)組(桶)里并排好序, 同時再記錄哪個位置存儲著非字母(包括空格),輸出時判斷該位置是否為非字母即可.

代碼

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int?cmp(const?void?*a,const?void?*b)??????//qsort是會直接將指針移到后面,那么非字符的相對位置就也會發(fā)生變化?
{
????char?*m=(char*)a;
????char?*n=(char*)b;
????return?*m-*n;?
}

int?main()
{
????int?T;
????scanf("%d",&T);
????getchar();
????for(int?i=0;i<T;i++)
????{
????????char?s[201];???//讀取字符串
????????char?s1[201];???//去除非大寫字母和空格
????????int?pos[201]={0};??//記錄存儲位置哪里為非字母????非字母地方記為1
????????gets(s);
????????int?k=0,r=0;
????????for(int?j=0;j<strlen(s);j++)??
????????{
????????????if(s[j]>='A'&&s[j]<='Z')
????????????{
????????????????s1[k]=s[j];???
????????????????k++;
????????????}
????????????else
????????????{
????????????????pos[j]=1;
????????????}
????????}
????????s1[k]='\0';
????????qsort(s1,strlen(s1),sizeof(char),cmp);
????????printf("case?#%d:\n",i);
????????int?temp=0;
????????for(int?j=0;j<strlen(s);j++)
????????{
????????????if(pos[j]==1)
????????????{
????????????????printf("%c",s[j]);
????????????}
????????????else{
????????????????printf("%c",s1[temp]);
????????????????temp++;
????????????}
????????}
????????printf("\n");
????}
????return?0;
}


《編程思維與實(shí)踐》1029.字符排序的評論 (共 條)

分享到微博請遵守國家法律
河北省| 犍为县| 广东省| 寻甸| 普洱| 稷山县| 林州市| 河源市| 旌德县| 宁德市| 日土县| 乳山市| 永平县| 沂水县| 阿城市| 鄂尔多斯市| 大庆市| 华安县| 万安县| 兰西县| 喀喇| 天津市| 富阳市| 武乡县| 灵寿县| 封开县| 建始县| 湖南省| 永顺县| 清流县| 乡城县| 东丰县| 平陆县| 吉木乃县| 景泰县| 东光县| 台江县| 安吉县| 桂阳县| 绩溪县| 灵丘县|