题解 | #字符串排序#

字符串排序

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

思路: 1、因为排序不能区分大小写字母。所以用循环的方式,从(A/a到Z/z)一个一个做判断,保存到另一个字符数组str_sort中 2、循环输入的字符串,如果是字母,就用str_sort数组中的数据替换,然后输出。

#include <stdio.h>

#define DIFF ('a'-'A')

int main()
{
    char str[1000] = {0};
    gets(str);
    int len = strlen(str);
    char str_sort[len];
    int index = 0;
    memset(str_sort, 0, len);
    for(int i = 'A'; i <= 'Z'; i++)
    {
        for(int j = 0; j < len; j++)
        {
            if(str[j] == i ||
              (str[j] - DIFF == i && str[j] >= 'a' && str[j] <= 'z'))
            {
                str_sort[index++] = str[j];
            }
        }
    }
#if 0
    /* 打印str_sort */
    printf("index:[%d], str_sort = [%s]\n", index, str_sort);
#endif
    index = 0;
    for(int i = 0; i < len; i++)
    {
        if(str[i] >= 'A' && str[i] <= 'Z'
           || str[i] >= 'a' && str[i] <= 'z')
        {
            str[i] = str_sort[index++];
        }
        printf("%c", str[i]);
    }
    printf("\n");
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
面试尴尬现场
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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