找错:字符串输出字母数字,不要下划线

输入字符串后,要求程序输出字符串中数字字母,其余删除。
#include<stdio.h>
int main()
{
char c1[100] = { '\0' };
char c2[100] = { '\0' };
int i=0;
printf("请输入字符串\n");
gets(c1);
while(c1[i]!='\0')
{
if ((c1[i] > 48 && c1[i] < 57) || (c1[i] > 'a' && c2[i] < 'z') || (c1[i] > 'A' && c2[i] < 'Z'))
{
c2[i] = c1[i];
}
i++;
}
i = 0;
while(c2[i]!='\0')
{
printf("%c", c2[i]);
i++;
}
}

哈喽,具体修改代码如下,有用请点采纳哦~

#include<stdio.h>
int main()
{
    char c1[100] = { '\0' };
    int i=0;
    printf("请输入字符串\n");
    gets(c1);
    while(c1[i]!='\0')
    {
        if ((c1[i] >= '0' && c1[i] <= '9') || (c1[i] >= 'a' && c1[i] <= 'z') || (c1[i] >= 'A' && c1[i] <= 'Z'))
        {
            printf("%c", c1[i]);
        }
        i++;
        
    }
}

if那里,后面两个写错了,写成c2了;还有,应该都要加=,不然1、9、a、z、A、Z输出不了;最后加了个变量j用来遍历c2。修改如下,望采纳:

#include<stdio.h>
int main()
{
    char c1[100] = { '\0' };
    char c2[100] = { '\0' };
    int i=0,j=0;
    printf("请输入字符串\n");
    gets(c1);
    while(c1[i]!='\0')
    {
        if ((c1[i] >= 48 && c1[i] <= 57) || (c1[i] >= 'a' && c1[i] <= 'z') || (c1[i] >= 'A' && c1[i] <= 'Z'))
        {
            c2[j] = c1[i];
            j++;
        }
        i++;
    }
    i = 0;
    while(c2[i]!='\0')
    {
        printf("%c", c2[i]);
        i++;
    }
}