C语言char字符串里的数字转换成int就变成0了,有的不变0,同样的数据,不知道哪里有问题

char转换为int,数据变成0,不知道哪里出错了
六个数据,同样的方法,成功了一个

#include 
#include 
//Ax+By=C
//Dx+Ey=F
//x=(CE-BF)/(AE-bD)
//y=(CD-AF)/(BD-aE)
int main(){
    char A[] = "";
    char B[] = "";
    char C[] = "";
    char D[] = "";
    char E[] = "";
    char F[] = "";
    printf("请按照以下格式输入方程组 Ax+By=C;Dx+Ey=F\n");
    char str[32] = "";
    scanf("%s",str);
    printf("方程组为 %s\n", str);
    sscanf(str,"%[^x]",A);
    printf("%s\n", A);
    sscanf(str,"%*[^+]+%[^y]",B);
    printf("%s\n", B);
    sscanf(str,"%*[^=]=%[^;]",C);
    printf("%s\n", C);
    sscanf(str,"%*[^;];%[^x]",D);
    printf("%s\n", D);
    sscanf(str,"%*[^;]%*[^+]+%[^y]",E);
    printf("%s\n", E);
    sscanf(str,"%*[^;]%*[^=]=%s",F);
    printf("%s\n", F);
    int num1, num2, num3, num4, num5, num6, x, y;
    num1 = atoi(A);
    num2 = atoi(B);
    num3 = atoi(C);
    num4 = atoi(D);
    num5 = atoi(E);
    num6 = atoi(F);
    printf("%d\n",num1);
    printf("%d\n",num2);
    printf("%d\n",num3);
    printf("%d\n",num4);
    printf("%d\n",num5);
    printf("%d\n",num6);
    //x = (num1 * num5 -num2 * num6) / (num1 * num5 - num2 * num4);
    //printf("%d,",x);
    //x=(CE-BF)/(AE-bD)
    //y=(CD-AF)/(BD-aE)
    return 0;
}

我尝试了重新写一个简单的,结果成功了,但这个不知道哪里错

#include
#include
int main()
{
     char b[18];
     int num;
     scanf("%s",b);//对char型数组进行赋值 如:123456789
     num = atoi(b);
     printf("%d",num);
     int C = num + 10;
     printf("%d",C);
     
     
    return 0;
 } 

img

请教大家了,还有这个系数为1又怎么检测,做了好长时间了

img

char A[] = "";
你没有给数组指定大小啊
既然输入表达式格式都是固定的,那这么写就可以了
int A,B,C,D,E,F;
scanf("%dx+%dy=%d,%dx+%dy=%c",&A,&B,&C,&D,&E,&F);

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^