题解 | #字符串合并处理#

字符串合并处理

https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f

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

typedef char EType;
int cmp(const void *left,const void *right)
{
    return *(EType*)left-*(EType*)right;
}
int main() {
    EType str1[201];
    EType str2[101];
    scanf("%s%s",str1,str2);
    strcat(str1,str2);//将两个字符串合并
    EType js[101]={0};
    EType os[101]={0};
    int len=strlen(str1);
    int i,j;
    EType  c;
    EType sixt[16]={'0','8','4','C','2','A','6','E','1','9','5','D','3','B','7','F'};
    for(i=0;i<len-2;i++)//奇偶下标分别排序
    {
        for(j=i+2;j<len;j+=2)
        {
            if(str1[i]>str1[j])
            {
                c=str1[i];
                str1[i]=str1[j];
                str1[j]=c;
            }
        }
    }
    int shi[len];
    for(i=0;i<len;i++)//字符转换为十进制数字
    {
        if(str1[i]>='0'&&str1[i]<='9')
        {
            shi[i]=str1[i]-'0';
        }else if(str1[i]>='a'&&str1[i]<='f')
        {
            shi[i]=str1[i]-'a'+10;
        }else if(str1[i]>='A'&&str1[i]<='F')
        {
            shi[i]=str1[i]-'A'+10;
        }else{
            shi[i]=-1;
            continue;
        }
    }
    for(i=0;i<len;i++)
    {
        if(shi[i]==-1)
        {
            continue;
        }else{
            str1[i]=sixt[shi[i]];//十进制转为十六进制
        }
    }
    printf("%s\n",str1);
    return 0;
}

全部评论
自己原本写的100行,看了看楼里大大写的又改了改
点赞 回复 分享
发布于 2023-11-18 11:58 广东

相关推荐

点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务