如何将数值赋给一个新的数组?

img

img


想问一下这个程序中如何将运算得到的数值赋给一个新数组,我这样写显示输出为空,而且感觉数组表示得也不太合适😭
谢谢大家🙏

①、i!='\0',这里应该是 s[i]!='\0' 吧
②、if语句或者for循环语句,如果省略了大括号,会默认后面第一行代码,也就是第一个分号前的代码为执行语句,也就说你写的if语句后面的count++,是if语句大括号外的了,每次for循环都会执行的,和你写的if语句没关系了,所以大括号除了只有一行代码,希望不要省略,养成良好习惯
③、你a[10]数组你定义的是char类型,最后printf()打印得是%s,应该打印%c

#include <stdio.h>
#include <math.h>
int main() {
    char a[10], s[10];
    int i, j = 0, r = 0, count = 0;
    gets(s);
    for (i = 0; i < 10; i++) {
        if (s[i] >= 'a' && s[i] <= 'f') {
            a[j] = s[i];
            j++;
            continue;
        }
        if (s[i] >= 'A' && s[i] <= 'F') {
            a[j] = s[i];
            j++;
            continue;
        }
        if (s[i] >= '0' && s[i] <= '9') {
            a[j] = s[i];
            j++;
            continue;
        }
    }
    count = j;
    printf("筛选结果:%s\n", a); //输出十六进制的字符
    for (i = 0; i < count; i++) {
        j--;
        int num;
        if (a[i] >= 'a' && a[i] <= 'f') { //统一转为大写
            a[i] -= 'a' - 'A';
        }
        if (a[i] >= 'A' && a[i] <= 'F') {//获取对应10进制数字
            num = a[i] - 'A' + 10;
        } else {
            num = a[i] - '0';
        }
        r += num * pow(16, j);//转为获取十进制数值
    }
    printf("number:%d\n", r); //输出十进制
}