题解 | #字符串合并处理#
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
#include <ctype.h>
#include <stdio.h>
#include <string.h>
char set_1[16]="084C2A6E195D3B7F";//变换编码集
char set_2[16]="0123456789ABCDEF";
int main() {
char str[201];
char str_2[101];
int i=0,j=0,len;
char temp;
scanf("%s",str);
scanf("%s",str_2);
strcat(str,str_2);//拼接
len=strlen(str);
for(i=0;i<len-1&&str[i]!='\0';i+=2)//偶数位冒泡排序
{
for(j=0;j<len-1-i&&str[j]!='\0';j+=2)
{
if(str[j]>str[j+2]&&str[j+2]!='\0')
{
temp=str[j];
str[j]=str[j+2];
str[j+2]=temp;
}
}
}
for(i=1;i<len-1&&str[i]!='\0';i+=2)//奇数位冒泡排序
{
for(j=1;j<len-1-i&&str[j]!='\0';j+=2)
{
if(str[j]>str[j+2]&&str[j+2]!='\0')
{
temp=str[j];
str[j]=str[j+2];
str[j+2]=temp;
}
}
}
for(i=0;i<len;i++)//转大写
{
if(str[i]>='a'&&str[i]<='f')
str[i]-=32;
}
for(i=0;i<len;i++)//处理变换
{
if((str[i]>='0'&&str[i]<='9')||(str[i]>='A'&&str[i]<='F'))
{
for(j=0;j<16;j++)
{
if(set_1[j]==str[i])
break;
}
str[i]=set_2[j];
}
printf("%c",str[i]);
}
return 0;
}
查看10道真题和解析