国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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.字符排序的評論 (共 條)

分享到微博請遵守國家法律
镇沅| 自治县| 绥江县| 石棉县| 互助| 德州市| 蓝田县| 额尔古纳市| 通江县| 潞城市| 宁都县| 酉阳| 承德县| 东光县| 库尔勒市| 稷山县| 呼玛县| 洪江市| 清远市| 襄城县| 鄂托克旗| 九龙坡区| 福清市| 镇宁| 九江市| 阿拉尔市| 景德镇市| 台南县| 蚌埠市| 凤山市| 北辰区| 沈丘县| 三原县| 龙井市| 屯昌县| 肃南| 南投市| 宜君县| 潼南县| 久治县| 乌鲁木齐县|