牛客网刷题 | BC60 判断是不是字母

描述

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

后续继续更新......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/567559.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

加密、解密、签名、验签、数字证书、CA浅析

一、加密和解密 加密和解密应用的很广&#xff0c;主要作用就是防止数据或者明文被泄露。 加解密算法主要有两大类&#xff0c;对称加密和非对称加密。对称加密就是加密和解密的密钥都是一个&#xff0c;典型的有AES算法。非对称加密就是有公钥和私钥&#xff0c;公钥可以发布…

在线测径仪的六类测头组合形式!哪种适合你?

在线测径仪&#xff0c;这一现代工业的精密仪器&#xff0c;犹如一位技艺高超的工匠&#xff0c;以其卓越的性能和精准度&#xff0c;为工业生产提供了坚实的保障。它的出现&#xff0c;不仅提高了生产效率&#xff0c;更保证了产品质量&#xff0c;为企业的可持续发展注入了强…

1张图片+3090显卡微调Qwen-VL视觉语言大模型(仅做演示、效果还需加大数据量)

原项目地址&#xff1a;https://github.com/QwenLM/Qwen-VL/blob/master/README_CN.md 环境本地部署&#xff08;见之前博文&#xff09; 【本地部署 】23.08 阿里Qwen-VL&#xff1a;能对图片理解、定位物体、读取文字的视觉语言模型 (推理最低12G显存) 一、数据集格式说明 …

『视觉感官盛宴』3D线上商场全方位展示商品与互动购买体验

随着技术的进步和消费者需求的多样化&#xff0c;3D线上商场作为一种新兴的电子商务平台&#xff0c;正逐渐改变传统的在线购物模式。 一、商品展示革命 在3D线上商场中&#xff0c;商品展示不再局限于静态图片和文字描述。借助先进的3D建模技术&#xff0c;商家能够创建商…

从0到1带你玩转pandas

学习 pandas 的过程可以分为几个阶段&#xff0c;每个阶段都围绕着不同的核心技能和概念。下面是一个为初学者设计的学习大纲&#xff1a; 一. 基础介绍 学习如何安装和设置 pandas 以及了解它的基本概念是开始使用 pandas 进行数据分析的第一步。下面我将详细介绍这些步骤&am…

【MySQL】A01、性能优化-语句分析

1、数据库优化方向 A、SQL及索引优化 根据需求写出良好的SQL&#xff0c;并创建有效的索引&#xff0c;实现某一种需求可以多种写法&#xff0c;这时候我们就要选择一种效率最高的写法。这个时候就要了解sql优化 B、数据库表结构优化 根据数据库的范式&#xff0c;设计表结构&…

mac电脑搭建vue环境(上篇)

第一步&#xff1a;mac电脑要有homebrew&#xff0c;如何安装homebrew 点击下方 MAC安装homebrew-CSDN博客 第二步&#xff1a;homebrew安装node.js 第三步&#xff1a;安装npm 第四步&#xff1a;安装webpack 第五步&#xff1a;安装vue脚手架 第六步&#xff1a;可以在…

翻译《The Old New Thing》 - Some reasons not to do anything scary in your DllMain

Some reasons not to do anything scary in your DllMain - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20040127-00/?p40873 Raymond Chen 2004年01月27日 简介 这篇文章讨论了为什么不应该在DLL的DllMain函数中执行复杂的操作 正文 众所…

Java中的重写

package day34; ​ public class Father {String name;int age;public void 输出(){System.out.println("father");} } ​ package day34; ​ public class Son extends Father{Overridepublic void 输出() {System.out.println("son");} } ​ package d…

C++:构造函数和析构函数

一、构造函数 1.1概念 构造函数是一个特殊的成员函数&#xff0c;名字与类相同&#xff0c;创建类类型对象时由编译器自动调用&#xff0c;保证每个数据成员都由一个合适的初始值。在对象的生命周期内只调用一次。 不使用构造函数 #include<iostream> using namespac…

美国站群服务器如何解决跨国运营中的网络延迟问题?

美国站群服务器如何解决跨国运营中的网络延迟问题? 在当今全球化的商业环境中&#xff0c;跨国企业面临的一个重要挑战是网络延迟问题。网络延迟不仅影响用户体验&#xff0c;还可能导致交易失败或数据传输错误&#xff0c;对企业造成不利影响。然而&#xff0c;利用美国站群…

982: 输出利用二叉树存储的普通树的度

解法&#xff1a; 由题意&#xff0c;根据二叉树求对应的合法普通树的度&#xff0c;度就是节点儿子数的最大值。 也就是左孩子&#xff0b;兄弟 在二叉树中就是某根节点的右孩子某根节点的右孩子的右孩子。。。 例AB#CD##E### 关于树概念不理解的可以看看981: 统计利用二叉…

【目标检测】YOLOv7 网络结构(与 YOLOv4,YOLOv5 对比)

YOLOv7 和 YOLOv4 Neck 与 Head 结构对比 其实 YOLOv7 的网络结构网上很多文章已经讲得很清除了&#xff0c;网络结构图也有非常多的版本可供选择&#xff0c;因为 YOLOv7 和 YOLOv4 是一个团队的作品&#xff0c;所以在网络结构方面&#xff0c; YOLOv7 和 YOLOv4 有很多相似…

解决配置Tomcat时,找不到war和war exploded问题

解决配置Tomcat时&#xff0c;找不到war和war exploded问题 文章目录 解决配置Tomcat时&#xff0c;找不到war和war exploded问题前言一、解决方法&#xff1a;1. war exploded2. war 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff1a; 一、解决方法&#xff1a;…

mac电脑搭建vue项目(下篇)

第三步&#xff1a;安装npm &#xff08;1&#xff09;执行以下命令安装cnpm淘宝镜像 sudo npm install -g cnpm --registryhttps://registry.npmmirror.com &#xff08;2&#xff09;执行命令cnpm -v查看版本信息&#xff0c;结果说找不到cnpm命令 &#xff08;3&#xff…

【Ubuntu20.04+Noetic】UR5e+Gazebo+Moveit

环境准备 创建工作空间 mkdir -p ur5e_ws/src cd ur5e_ws/srcUR机械臂软件包 UR官方没更新最新的noetic的分支,因此安装melodic,并需要改动相关文件。 安装UR的模型配置包,包里面有UR模型文件,moveit配置等: cd ~/ur5e_ws/src git clone -b melodic-devel https://git…

分步搭建HF区块链网络

一.搭建网络规划 采用容器环境&#xff0c;搭建1个排序节点(Orderer)、2个对等节点(Peer)&#xff0c;另外用 一个fabric-cli容器。实训中的绝大部分命令是通过该容器执行的。 容器名称设置 二. 配置HF网络证书 首先docker ps 检查镜像&#xff0c;确保镜像为空 1.生成crypto…

新技术前沿-2024-国内主流AI大模型架构及应用场景深度分析

参考国内主流AI 大模型架构及应用场景深度分析 2024 1 厂商总览 1.1 国外 (1)Open AI:GPT-4【美国旧金山的人工智能研究公司】 GPT-4于2023年3月14日发布,是千亿级参数的多模态预训练模型,能够支持图像和文本的输入。 (2)Anthropic(人类的):Claude【美国人工智能初创公司…

供应链拉动与推动生产方式(供应链维度)

一、推式供应链与拉式供应链的定义 1、推动式供应链 推动式供应链是以制造商为核心企业&#xff0c;根据产品的生产和库存情况&#xff0c;有计划地把商品推销给客户&#xff0c;其驱动力源于供应链上游制造商的生产。在这种运作方式下&#xff0c;供应链上各节点比较松散&am…

探索深度与广度的平衡:迭代加深深度优先搜索技术解析

探索深度与广度的平衡&#xff1a;迭代加深深度优先搜索技术解析 迭代加深深度优先搜索&#xff08;IDDFS&#xff09;的基本原理伪代码C语言实现讨论结论 迭代加深&#xff08;Iterative Deepening Depth-First Search, IDDFS&#xff09;是一种用于解决搜索问题的方法&#x…