我正在尝试创建一个程序,该程序读取用户输入的字符串并仅打印非“ 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;
}
答案 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