作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个程序来读取用户输入字符串并仅打印那些不是“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;
}
最佳答案
首先...永远不要使用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
关于c - 如何编写读取用户输入字符串并仅打印非 ‘a-z’ 或 ‘A-Z’ 的 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53573282/
我是一名优秀的程序员,十分优秀!