试了好多次,请看看哪里出错了

请帮忙看看哪里出错了

 #include<stdio.h>
#include<stdlib.h>
typedef struct SqStack
{
    char* base; 
    char* top;  
}SqStack; 
void InitStack(SqStack* S)
{ 
    (*S).base = (char*)malloc(300 * sizeof(char));
    (*S).top = (*S).base;
}
void Push(SqStack* S, char e)
{
    *((*S).top)++ = e;
}
int Pop(SqStack* S)
{
    char e;
    e = *--(*S).top;
    return e;
}
int main() {
    char A[26], B[26];
    char s;
    int  b,l=0,k=0;
    SqStack C;
    InitStack(&C);
    for (int u = 0; u < 26; u++) {
        scanf("%c", &s);
        if (s =='\n') break; 
        A[u] = s;
    }
    s = 'a';
    for (int i = 0; i < 26; i++) {
        scanf("%c", &s);
        if (s == '\n') {
            b = i ; 
            break;
        }
        B[i] = s;
    }
    int E = 0;
    for (int j = 0; j < b - 1; j++)
        for (int i = 0; i < b - 1; i++) {
            if (A[i] == B[j] && A[i + 1] == B[j + 1]) E = 1;
        }
    if (E) printf("Are you kidding me?");
    else {
        while (l != b) {if(k==b) k=0;
            if (A[k] == B[l]) { A[k%b] = '0'; printf("1->2\n"); l++; k++; }
            else if (A[k] != '0') { Push(&C, A[k]); A[k] = '0'; printf("1->3\n");  k++; }
            if (Pop(&C) == B[l]) { printf("3->2\n"); l++; }
        }
    }
        return 0;
}



![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/973261305946188.png "#left")



前两个警告是建议你用scanf_s替换scanf,改为scanf_s("%c",&s,1);
第三个警告是提醒你b变量没有初始化,可能会出问题。建议在定义b时初始化为b=0;