c语言 忽略空格字符串判等

c语言 字符串判等
忽略大小写的问题解决了,但我不知道怎么忽略空格。

img


下面是我的代码

#include<stdio.h>
#include<string.h>
int main()
{
    char a[101]={0},b[101]={0}; 
    gets(a);
    gets(b);
    for(int i=0;i<strlen(a);i++)
    {
        if(a[i]>='A'&&a[i]<='Z')
        a[i]=a[i]+32;
        if(a[i]==' ')
        a[i]=0;//该步骤需要改
    }
    for(int i=0;i<strlen(b);i++)
    {
        if(b[i]>='A'&&b[i]<='Z')
        b[i]=b[i]+32;
        if(b[i]==' ')
        b[i]=0;//该步骤需要改
    }
    if(strcmp(a,b)==0)
    printf("YES");
    else printf("NO");
        return 0;
} 


int main()
{
    char a[101] = {0}, b[101] = {0};
    char c[101] = {0}, d[101] = {0}; // 存放去掉空格并转小写后的字符串
    gets(a);
    gets(b);
    int i, j;
    for (i = j = 0; i < strlen(a); i++)
    {
        // if (a[i] >= 'A' && a[i] <= 'Z')
        //     a[i] = a[i] + 32;
        // if (a[i] == ' ')
        //     a[i] = 0; // 该步骤需要改

        if (isalpha(a[i])) // 只处理字符
            c[j++] = a[i] + (a[i] >= 'A' && a[i] <= 'Z' ? 32 : 0);
    }
    for (i = j = 0; i < strlen(b); i++)
    {
        // if (b[i] >= 'A' && b[i] <= 'Z')r

        //     b[i] = b[i] + 32;
        // if (b[i] == ' ')
        //     b[i] = 0; // 该步骤需要改
        if (isalpha(b[i])) // 只处理字符
            d[j++] = b[i] + (b[i] >= 'A' && b[i] <= 'Z' ? 32 : 0);
    }

    if (strcmp(c, d) == 0) // if (strcmp(a, b) == 0)
        printf("YES");
    else
        printf("NO");
    return 0;
}

https://blog.csdn.net/u014157109/article/details/115653094
这儿有几个都可以用,原理就是用空格后的字符把空格替换。
先将你输入的字符串做去除空格处理,然后再忽略大小写,然后比较