描述
KiKi想判断输入的字符是不是字母,请帮他编程实现。
输入描述:
多组输入,每一行输入一个字符。
输出描述:
针对每组输入,输出单独占一行,判断输入字符是否为字母,输出内容详见输出样例。
思路:
1、首先定义一个char类型变量
!!!!!!注意!!!!!!
看清题目 千万不要定义成两个变量
一时糊涂我就定义了两个变量 一直在想 这怎么输出......
一开始写的奇葩代码......
2、接下来进行判断 对照ascll码表
直接判断是不是字母就行了
是就输出
A is an alphabet.
不是就输出
6 is not an alphabet.
# include <stdio.h>
int main ()
{
char a = 0;
//char b = 0;
while(scanf("%c",&a)!=EOF)//!= EOF 表示连续输入的意思
{
//scanf("%c",&b);
if((a>='A'&&a<='Z')||(a>='a'&&a<='z'))//判断是否为字母
{
printf("%c is an alphabet.\n",a);
getchar();//主要判断是不是回车 吸收enter键
}
else
{
printf("%c is not an alphabet.\n",a);
getchar();
}
}
return 0;
}
代码如上:
其中要注意的是:
getchar()和 != EOF
扩展:
以下来自:C 库函数 – getchar() | 菜鸟教程 (runoob.com)
getchar()
C 库函数 - getchar()
描述
C 库函数 int getchar(void) 从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于 getc 带有 stdin 作为参数。
声明
下面是 getchar() 函数的声明。
int getchar(void)
参数
- NA
返回值
该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回 EOF。
实例
下面的实例演示了 getchar() 函数的用法。
#include <stdio.h>
int main ()
{
char c;
printf("请输入字符:");
c = getchar();
printf("输入的字符:");
putchar(c);
return(0);
}
让我们编译并运行上面的程序,这将产生以下结果:
请输入字符:a
输入的字符:a
!= EOF
以下来自:C语言EOF是什么 (biancheng.net)
C语言EOF是什么
在 C语言中,EOF 是一个宏定义,它代表"end of file",表示文件结束标志。EOF 是一个特殊的字符,它的值在不同的编译器中可能不同,但总是负数。在大多数系统中,EOF 的值为 -1。
EOF 常常用于文件的输入输出中,当读取到文件结束时,会返回 EOF。
文件的输入输出
在 C语言中,文件的输入输出是通过标准库中的文件操作函数来实现的。文件操作函数主要包括 fopen、fclose、fread、fwrite、fscanf 和 fprintf 等。
下面是一个简单的示例代码,演示了如何使用 fopen 和 fgetc 函数读取一个文本文件中的字符,当读取到文件结束时,返回 EOF:
#include <stdio.h>
int main()
{
FILE *fp;
int c;
fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
while ((c = fgetc(fp)) != EOF) {
putchar(c);
}
fclose(fp);
return 0;
}
在上面的代码中,我们使用 fopen 函数打开一个名为 example.txt 的文本文件,并以只读方式打开。如果文件打开失败,我们将输出一条错误消息并退出程序。如果文件打开成功,我们将使用 fgetc 函数逐个读取文件中的字符,并将它们输出到屏幕上。当读取到文件结束时,fgetc 函数将返回 EOF,循环将结束并关闭文件。
为什么要用EOF
在文件的输入输出中,EOF 用于表示文件结束标志。当我们使用 fgetc 函数从文件中读取字符时,如果读取到 EOF,我们就知道已经读取到了文件的末尾。
在很多情况下,我们需要根据文件是否已经结束来采取不同的操作。例如,在读取一个文本文件时,我们可能需要在读取到文件结束时计算文本文件的总行数或总字符数。
此外,在文件的输入输出中,EOF 还有一个重要的作用,就是在读取或写入文件时检测错误。当读取或写入文件时出现错误时,文件操作函数将返回 EOF。通过检查文件操作函数的返回值,我们可以判断文件操作是否成功,并采取相应的措施。
EOF和字符类型
需要注意的是,EOF 并不是一个字符类型。EOF 是一个整型常量,它的值是一个负数,通常是 -1。因此,在使用 EOF 时,我们需要将它与整型类型进行比较,而不是与字符类型进行比较。
在使用 EOF 时,我们通常使用 int 类型来存储它的值。例如,在上面的示例代码中,我们使用 int 类型的变量 c 来存储 fgetc 函数的返回值,然后将它与 EOF 进行比较。
总结
在 C语言中,EOF 是一个宏定义,表示文件结束标志。当读取文件时读取到 EOF 时,文件操作函数将返回 EOF,我们可以通过检查文件操作函数的返回值来判断文件是否已经结束,以及在读取或写入文件时是否出现了错误。
EOF 通常用于文件的输入输出中,特别是在读取文本文件时。在文件操作中,EOF 的值通常为 -1,因为它是一个负数。在使用 EOF 时,我们需要将它与整型类型进行比较,而不是与字符类型进行比较。
下面是一个更复杂的示例代码,演示了如何使用 EOF 来读取一个二进制文件中的数据:
#include <stdio.h>
int main()
{
FILE *fp;
int c;
unsigned char buffer[1024];
size_t n;
fp = fopen("example.bin", "rb");
if (fp == NULL) {
printf("Failed to open file\n");
return 1;
}
n = fread(buffer, sizeof(unsigned char), sizeof(buffer), fp);
while (n > 0) {
for (size_t i = 0; i < n; i++) {
printf("%02x ", buffer[i]);
}
printf("\n");
n = fread(buffer, sizeof(unsigned char), sizeof(buffer), fp);
}
if (feof(fp)) {
printf("End of file reached\n");
} else if (ferror(fp)) {
printf("Error while reading file\n");
}
fclose(fp);
return 0;
}
在上面的代码中,我们使用 fopen 函数打开一个名为 example.bin 的二进制文件,并以只读方式打开。如果文件打开失败,我们将输出一条错误消息并退出程序。如果文件打开成功,我们将使用 fread 函数从文件中读取数据,并将数据以 16 进制形式输出到屏幕上。
在每次读取完数据之后,我们使用 feof 函数检查文件是否已经结束,如果已经结束,我们将输出一条消息。如果在读取文件时出现错误,我们将使用 ferror 函数检查错误,并输出一条错误消息。
在上面的示例代码中,我们使用了多个文件操作函数,包括 fread、feof 和 ferror。fread 函数用于从文件中读取数据,feof 函数用于检查文件是否已经结束,ferror 函数用于检查文件读取或写入时是否出现了错误。使用这些文件操作函数,我们可以更好地控制文件的输入输出,从而编写更稳健和可靠的程序。
总之,在 C语言中,EOF 是一个宏定义,表示文件结束标志。EOF 常用于文件的输入输出中,特别是在读取文本文件时。在文件操作中,EOF 的值通常为 -1,因为它是一个负数。在使用 EOF 时,我们需要将它与整型类型进行比较,而不是与字符类型进行比较。同时,我们可以使用文件操作函数如 feof 和 ferror 来检测文件的结束和错误,以确保程序的正确性和可靠性。
Hello,各位读者朋友们你们好,欢迎来到 从0至1 的CSDN博客。
一个喜欢文学的理科男,欢迎大家关注我的矩阵平台!
欢迎关注我的短视频矩阵:
微信公众平台:从0至1
今日头条:从0至1
百家号(百度APP):小飞从0至1
抖音:从0至1
小红书:从0至1
知乎:从0至1
CSDN:https://blog.csdn.net/m0_64000959?spm=1000.2115.3001.5343
Gitee:https://gitee.com/from-0-to-1
后续继续更新......