如何编写一个C程序来读取用户输入的字符串并仅打印那些不是“ a-z”或“ A-Z”的字符串

时间:2018-12-01 17:24:43

标签: c

我正在尝试创建一个程序,该程序读取用户输入的字符串并仅打印非“ a-z”或“ A-Z”的字符串。以下程序可以打印字符串。但是,我该如何编写一个C程序来读取用户输入的字符串并仅打印那些不是“ a-z”或“ A-Z”的字符串?感谢您能提供的任何帮助。

#include <stdio.h>
int main()
{
char name[30];
printf("Enter name: ");
gets(name);     // read string
printf("Name: ");
puts(name);    // display string
return 0;
}

1 个答案:

答案 0 :(得分:1)

要开始... 从不,请使用gets(也不要使用scanf("%s" …)。使用fgets

然后,您只需遍历字符串并检查单个字符是否在您不想打印的字符范围内。

#define MAX_LEN 30

int main()
{    
    char name[30];
    printf("Enter name: ");
    if (fgets(name, MAX_LEN, stdin) != NULL)
    {
         int i = 0;
         while (name[i])
         {
            if ((name[i] < 'a' || name[i] > 'z') &&
                (name[i] < 'A' || name[i] > 'Z'))
                putchar(name[i]);
            ++i;
         }
    }

    return 0;    
}

输入:

12john34BEN56 78Al9

输出:

Enter name: 12john34BEN56 78Al9

123456 789