要求删除小写字母,为什么一遇到空格就不继续删了


#include<stdio.h>
int main()
{
    int i,j=0;
    char s[30],a[30];
    scanf("%s",&s);
    for(i=0;s[i]!='\0';i++)
        if(s[i]<'a'||s[i]>'z')
        {
            a[j++]=s[i];;
        }a[j]='\0';
    printf("%s",a);
    return 0;
}

不是到空格就停止删除了
是scanf只读取空格前面的字符串
你可以验证一下:

#include<stdio.h>
int main()
{
    int i,j=0;
    char s[30],a[30];
    scanf("%s",&s);
    puts(s);  //输出s看看
    for(i=0;s[i]!='\0';i++)
        if(s[i]<'a' || s[i]>'z')
        {
            a[j++]=s[i];
        }
    a[j]='\0';
    printf("%s",a);
    return 0;
}

img

有输出的例子吗?