题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

非字母的字符串排序后还是在原来的位置,所以先把字母全部提取出来排序,然后非字母的直接打印,
字母按新排序的打印。
#include"stdio.h"
#include"string.h"

char str[1001] = { 0 };
char tmp_str[1000] = { 0 };

int main(void) {
    int len, i, j, t=0, n, num = 0;
    fgets(str, sizeof(str), stdin);
    len = strlen(str);
    while (str[len - 1] == '\n' || str[len - 1] == '\r') {
        len--;
    }

    for(i='A';i<='Z';i++){
        for(j=0;j<len;j++){
            if(str[j] == i || str[j] == i + ('a'-'A')){
                tmp_str[t]=str[j];
//                printf("%c",str[j]);
                t++;
            }
        }
    }
    t=0;
//    printf("%c",'\n');
    for(i=0;i<len;i++){
        if(!((str[i] >= 'A' && str[i] <= 'Z') || (str[i] >= 'a' && str[i] <= 'z'))){
            printf("%c",str[i]); //不是字母直接打印
        }else{
            printf("%c",tmp_str[t]);  //字母按排序后的顺序替换。
            t++;
        }
    }
    return 0;
}


全部评论

相关推荐

11-17 23:00
南昌大学 Java
这个名称和你无缘:10元一天 0元提成😂
点赞 评论 收藏
分享
10-09 17:17
已编辑
门头沟学院 Java
活泼的代码渣渣在泡池...:同学你好,我也是学院本,后天要面这个亚信科技,是实习,请问问题都啥样呀,我项目就做了网上的,这是第一次面试
投递多益网络等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务