kkken 发表于 2021-11-12 20:00:13

求助,找十六进制並把它变英文字/符号

本帖最后由 kkken 于 2021-11-13 15:33 编辑

如何寻找char arr[]中的十六进制並把它变英文字/符号 等等
eg.
cin>>ab%63;
ans: abc;
cin>>ab%63%6fef;
ans: abcoef
cin>>co%6fk
ans:cook
只能用cstring, iostream为library
谢谢。

jhq999 发表于 2021-11-12 22:50:49

本帖最后由 jhq999 于 2021-11-13 05:37 编辑

{:5_104:} 发重了

jhq999 发表于 2021-11-12 22:53:24

本帖最后由 jhq999 于 2021-11-13 05:44 编辑

#include <stdio.h>
#include <iostream>
using namespace std;
int main ()
{
       
        char a={0},b={0};
        int i=0,j=0,k=0,charval=0;
        cin>>a;
        i=0;
        while(a)
        {
                if('%'==a)
                {
                        j=1;
                        while(a>='0'&&a<='9')j++;
                        for (k = 0; k<j-1; k++)
                        {
                                b=a;
                        }
                        b='\0';
                        sscanf(b,"%x",&charval);
                        a=charval;
                        j--;
                        for (k=i+1; a; k++)//可以用#include <cstring>里的strcpy(a+i+1,a+i+1+j);
                        {
                                a=a;
                        }
                        a=a;
                }
                i++;
        }
        printf("%s",a);
        return 0;
}

kkken 发表于 2021-11-13 10:32:20

jhq999 发表于 2021-11-12 22:53


如果%6f, %5a 等,要如何转成英文字?
谢谢。

jhq999 发表于 2021-11-13 11:07:50

本帖最后由 jhq999 于 2021-11-13 11:14 编辑

kkken 发表于 2021-11-13 10:32
如果%6f, %5a 等,要如何转成英文字?
谢谢。

我考虑多了
去掉
while(a>='0'&&a<='9')j++;

j=3;
代替
既然出现字母,那一定是定长的
页: [1]
查看完整版本: 求助,找十六进制並把它变英文字/符号