题解 | #字符串合并处理# 我太菜了,做了好久
字符串合并处理
https://www.nowcoder.com/practice/d3d8e23870584782b3dd48f26cb39c8f
#include <stdio.h> #include <string.h> #include <ctype.h> int reverse(int num) { int i,count=0,arr[4]={0},new_n=0;//十六进制4位 while(num) { arr[count]=num%2; count++; num=num/2; } int temp=1; for(i=3;i>=0;i--) { new_n=arr[i]*temp+new_n; temp=temp*2; } return new_n; } int main() { int i,j; char ch,str1[1000],str2[1000]; scanf("%s",str1); scanf("%s",str2); strcat(str1,str2); for(i=0;i<strlen(str1)/2;i++) { for(j=0;j<strlen(str1)/2;j++) { if(str1[2*j]>str1[2*j+2]&&2*j+2<strlen(str1)) { ch=str1[2*j]; str1[2*j]=str1[2*j+2]; str1[2*j+2]=ch; } if(str1[2*j+1]>str1[2*j+3]&&2*j+3<strlen(str1)) { ch=str1[2*j+1]; str1[2*j+1]=str1[2*j+3]; str1[2*j+3]=ch; } } } // printf("%d",reverse(10)); int num; for(i=0;i<strlen(str1);i++) { if(isdigit((int)str1[i])) { num=str1[i]-'0';//十进制数 printf("%X",reverse(num)); } else if(str1[i]>='a'&&str1[i]<='f'||str1[i]>='A'&&str1[i]<='F') { char ch=toupper((int) str1[i]);//转换成大写 num=ch-'A'+10;//转十进制数 printf("%X",reverse(num)); } else printf("%c",str1[i]); } return 0; }