仅打印字母并显示数字或特殊字符串的错误

时间:2017-06-13 07:42:25

标签: c

当输入只是特殊字符或数字字符串时,我无法打印错误。它适用于混合字符串,但不适用于数字或特殊字符串

#include<stdio.h>
#include<ctype.h>
#include<string.h>

    void main()
    {
        int c = 0, i;
        char s[20];char*r;
        printf("Enter the string:\n");
        fgets(s,20,stdin);
        for (i = 0;i < sizeof(s); i++)
        {
            if( (s[i]<'A' || s[i]>'Z') || (s[i]<'a' || s[i]>'z'))
                c++;
        }
        if( (c == (strlen(s)) || (c == strlen(s)-1)))
            printf("No alphabets to display");
        else
        {
            for(r = s; *r; *r++)
            {
                if(isalpha(*r)) 
                    printf("%c",*r);
            }
        }
   }

1 个答案:

答案 0 :(得分:0)

将此片段添加到您的代码中:
else if(!isalpha(*s)) printf("No alphabets to display");
并更正您的代码:for(i=0;i<sizeof(s);i++)
致:for(i=0;i<strlen(s);i++)