当前位置: 首页 > news >正文

C语言字符学习初级优先看这个就够了

1. 字符的基本概念

在C语言中,字符(char)是一个基本的数据类型,用来表示单个字符。字符用单引号(' ')括起来,例如 'a''1' 等。字符在内存中实际上是以整数的形式存储的,即 ASCII 码。例如,字符 '0' 的 ASCII 码值为 48,字符 'A' 的 ASCII 码值为 65,字符 'a' 的 ASCII 码值为 97。

2. 使用 scanf 读取字符

scanf 是用于从标准输入读取数据的函数,你可以用它来读取字符。对于字符输入,你可以使用 %c 来指定读取单个字符。

示例代码

#include <stdio.h>int main() {char ch;printf("请输入一个字符: ");scanf("%c", &ch);  // 使用 %c 读取一个字符printf("你输入的字符是: %c\n", ch);  // 输出读取的字符return 0;
}

在这个例子中,scanf 从用户输入中读取一个字符并存储到 ch 变量中,然后通过 printf 输出这个字符。

3. 判断字符是否为数字

为了判断字符是否为数字,你可以通过比较字符的 ASCII 码值来实现。数字字符的 ASCII 码值是连续的,从 '0''9' 分别对应 ASCII 值 48 到 57。我们可以通过检查字符是否在 '0''9' 之间来判断它是否是数字。

手动实现判断是否为数字

#include <stdio.h>int main() {char ch;printf("请输入一个字符: ");scanf("%c", &ch);// 判断字符是否为数字if (ch >= '0' && ch <= '9') {printf("字符 '%c' 是一个数字。\n", ch);} else {printf("字符 '%c' 不是数字。\n", ch);}return 0;
}

在这个例子中,我们通过比较字符 ch 是否在 '0''9' 之间来判断它是否为数字。

4. 判断字符是否为字母

字母的 ASCII 码值也可以分段判断:大写字母 'A''Z' 的 ASCII 值范围是 65 到 90,小写字母 'a''z' 的 ASCII 值范围是 97 到 122。因此,我们可以通过检查字符是否在这两个范围内来判断它是否为字母。

手动实现判断是否为字母

#include <stdio.h>int main() {char ch;printf("请输入一个字符: ");scanf("%c", &ch);// 判断字符是否为字母if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {printf("字符 '%c' 是一个字母。\n", ch);} else {printf("字符 '%c' 不是字母。\n", ch);}return 0;
}

5. 完整的字符判断程序

现在你已经学会了如何判断字符是数字还是字母,接下来我们可以写一个完整的程序,判断输入的字符是数字、字母,还是其他字符。

示例代码

#include <stdio.h>int main() {char ch;printf("请输入一个字符: ");scanf("%c", &ch);// 判断字符是否为数字if (ch >= '0' && ch <= '9') {printf("字符 '%c' 是一个数字。\n", ch);}// 判断字符是否为字母else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {printf("字符 '%c' 是一个字母。\n", ch);}// 如果不是数字也不是字母else {printf("字符 '%c' 是其他字符。\n", ch);}return 0;
}

6. 使用 scanf 读取一行字符

如果你想要一次读取一行字符而不是单个字符,可以使用 scanf 的格式控制符 %s 来读取字符串。不过,%s 只会读取到空白字符(如空格、换行符)之前的输入。如果你想要读取整行输入,可以使用如下方式。

读取一行字符串

#include <stdio.h>int main() {char str[100];printf("请输入一行字符: ");scanf("%s", str);  // 读取输入直到遇到空格printf("你输入的是: %s\n", str);return 0;
}

但是如果需要读取整行输入,包括空格,可以使用 fgets()(以后你可以学习)。

7. 完整练习

你可以编写一个程序,循环读取用户输入的字符,判断每个字符是数字、字母,还是其他字符,直到用户输入某个特定的字符(如 q)来退出程序。

示例代码

#include <stdio.h>int main() {char ch;while (1) {printf("请输入一个字符(输入 'q' 退出程序): ");scanf(" %c", &ch);  // 注意:这里的空格是为了忽略之前输入的换行符if (ch == 'q') {break;  // 如果输入 'q',则退出循环}// 判断字符是否为数字if (ch >= '0' && ch <= '9') {printf("字符 '%c' 是一个数字。\n", ch);}// 判断字符是否为字母else if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) {printf("字符 '%c' 是一个字母。\n", ch);}// 如果不是数字也不是字母else {printf("字符 '%c' 是其他字符。\n", ch);}}return 0;
}

总结

  • 字符读取:使用 scanf("%c", &ch) 来读取单个字符。
  • 手动字符判断:通过字符的 ASCII 码值范围来判断是否为数字或字母。
  • 逻辑判断:使用 if-else 结构进行字符的分类判断。

这些基本操作能帮助你理解字符的处理方式。以后你可以逐渐过渡到使用更高级的库函数来处理字符,例如 isdigit()isalpha(),它们能简化判断过程。

相关文章:

C语言字符学习初级优先看这个就够了

1. 字符的基本概念 在C语言中&#xff0c;字符&#xff08;char&#xff09;是一个基本的数据类型&#xff0c;用来表示单个字符。字符用单引号&#xff08; &#xff09;括起来&#xff0c;例如 a、1 等。字符在内存中实际上是以整数的形式存储的&#xff0c;即 ASCII 码。例…...

Python JSON

JSON 函数 json.dumps 语法 实例 json.loads 语法 实例 使用第三方库&#xff1a;Demjson 环境配置 JSON 函数 encode 语法 实例 decode 语法 实例 JSON 函数 使用 JSON 函数需要导入 json 库&#xff1a;import json。 函数描述json.dumps将 Python 对象编码…...

【华为杯】2024华为杯数模研赛F题 解题思路

题目 X射线脉冲星光子到达时间建模 问题背景 高速公路拥堵现象的原因众多&#xff0c;除了交通事故外&#xff0c;最典型的就是部分路段出现瓶颈现象&#xff0c;主要原因是车辆汇聚&#xff0c;而拥堵后又容易蔓延。高速公路一些特定的路段容易形成堵点&#xff0c;如匝道出…...

Object Pascal 结构化程序设计

Object Pascal 关系运算符 运算符名称等于<>不等于>大于<小于>大于等于<小于等于< (属于元素的)包含于> (属于元素的)包含in (属于元素的)属于 # Object Pascal 逻辑运算符 运算符名称含义Not逻辑非单目运算符&#xff0c;进行取反操作&#xff0c;由T…...

机器学习算法与实践_03概率论与贝叶斯算法笔记

1、概率论基础知识介绍 人工智能项目本质上是一个统计学项目&#xff0c;是通过对 样本 的分析&#xff0c;来评估/估计 总体 的情况&#xff0c;与数学知识相关联 高等数学 ——> 模型优化 概率论与数理统计 ——> 建模思想 线性代数 ——> 高性能计算 在机器学…...

如何使用Privoxy将SOCKS5代理转换为HTTP代理?

在这篇博客中&#xff0c;我将介绍如何使用Privoxy将SOCKS5代理转换为HTTP代理。我们将从下载和安装Privoxy开始&#xff0c;接着配置Privoxy&#xff0c;最后配置Windows以便浏览器使用该代理。 1. 下载并安装Privoxy 首先&#xff0c;您需要下载并安装Privoxy。您可以从Pri…...

AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理

文章目录 一、AJAX二、HTTP协议1. 请求报文2. 响应报文 三、AJAX案例准备1. 安装node2. Express搭建服务器3. 安装nodemon实现自动重启 四、AJAX发送请求1. GET请求2. POST请求(1) 配置请求体(2) 配置请求头 3. 响应JSON数据的两种方式(1) 手动&#xff0c;JSON.parse()(2) 设置…...

Git进阶(十五):Git LFS 使用详解

文章目录 一、介绍二、Git LFS 使用步骤三、场景示例四、拓展阅读 一、介绍 Git LFS (Large File Storage) 是一个 Git 扩展&#xff0c;它使 Git 更适合处理大型文件&#xff0c;如音频、视频、图像或任何其他二进制大文件。Git LFS 替换仓库中的大文件为文本指针文件&#x…...

操作系统 | 学习笔记 | | 王道 | 5.1 I/O管理概述

5.1 I/O管理概述 5.1.1 I/O设备 注&#xff1a;块设备可以寻址&#xff0c;但是字符设备是不可寻址的 I/O设备是将数据输入到计算机中&#xff0c;或者可以接收计算机输出数据的外部设备&#xff0c;属于计算机中的硬件部件&#xff1b; 设备的分类 按使用特性分类&#xff…...

关于es的一个多集群、多索引切换的实现

首先是封装了一个类里定义了关于集群名称和集群节点&#xff1b;以及关于索引的名称和集群的名称做一个关联&#xff1b;将多个集群封装存储得到类中 /*** es集群类*/ Data public class EsClusterConfig implements Serializable {/*** 集群名称*/private String name;/*** 集…...

Linux系统编程(基础指令)上

1.Linux常见目录介绍 Linux目录为树形结构 /&#xff1a;根目录&#xff0c;一般根目录下只存放目录&#xff0c;在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”&#xff0c;你其实是在告诉电脑&#xff0c;先从/&#xff08;根目录&…...

【STM32 Blue Pill编程】-定时器PWM模式

定时器PWM模式 文章目录 定时器PWM模式1、定时器PWM模式介绍2、硬件准备及接线3、模块配置4、代码实现在文中,我们将介绍如何使用 STM32 Blue Pill 定时器的PWM模式以及如何配置它们以生成具有不同占空比和频率的信号。 我们将使用 LED调光器示例来演示如何使用 STM32Cube IDE…...

数字英文验证码识别 API 对接说明

数字英文验证码识别 API 对接说明 本文将介绍一种 数字英文验证码识别 API 对接说明&#xff0c;它是基于深度学习技术&#xff0c;可用于识别变长英文数字验证码。输入验证码图像的内容&#xff0c;输出验证码结果。 接下来介绍下 数字英文验证码识别 API 的对接说明。 注册…...

稳了,搭建Docker国内源图文教程

大家好&#xff0c;之前分享了我的开源作品 Cloudflare Workers Proxy&#xff0c;它的作用是代理被屏蔽的地址&#xff0c;理论上支持代理任何被屏蔽的域名&#xff0c;使用方式也很简单&#xff0c;只需要设置环境变量 PROXY_HOSTNAME 为被屏蔽的域名&#xff0c;最后通过你的…...

零工市场小程序:推动零工市场建设

人力资源和社会保障部在2024年4月发布了标题为《地方推进零工市场建设经验做法》的文章。 零工市场小程序的功能 信息登记与发布 精准匹配、推送 在线沟通 权益保障 零工市场小程序作为一个找零工的渠道&#xff0c;在往后随着技术的发展和政策的支持下&#xff0c;功能必然…...

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测

回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测 目录 回归预测 | Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现SSA-HKELM麻雀算法优化混合核极限学习机多变量…...

VCNet论文阅读笔记

VCNet论文阅读笔记 0、基本信息 信息细节英文题目VCNet and Functional Targeted Regularization For Learning Causal Effects of Continuous Treatments翻译VCNet和功能目标正则化用于学习连续处理的因果效应单位芝加哥大学年份2021论文链接[2103.07861] VCNet和功能定向正…...

Python 装饰器使用详解

文章目录 0. 引言1. 什么是装饰器&#xff1f;2. 装饰器的基本语法3. 装饰器的工作原理4. 常见装饰器应用场景4.1. 日志记录4.2. 权限校验4.3. 缓存 5. 多重装饰器的执行顺序6. 装饰器的高级用法6.1. 带参数的装饰器6.2. 使用 functools.wraps6.3. 类装饰器 7. 图示说明7.1. 单…...

Vue使用qrcodejs2-fix生成网页二维码

安装qrcodejs2-fix npm install qrcodejs2-fix核心代码 在指定父view中生成一个二维码通过id找到父布局 //通过id找到父布局let codeView document.getElementById("qrcode")new QRCode(codeView, {text: "测试",width: 128,height: 128,colorDark: #00…...

兼容多个AI应用接口,支持用户自定义切换AI接口

项目背景 2023年ChatGPT横空出世&#xff0c;给IT行业造成了巨大的反响。我第一次发现这个ChatGPT有着如此神奇的功能&#xff08;智能对话&#xff0c;知识问答&#xff0c;代码生成&#xff0c;逻辑推理等&#xff09;&#xff0c;我感到非常吃惊&#xff01;经过一番学习和…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

comfyui 工作流中 图生视频 如何增加视频的长度到5秒

comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗&#xff1f; 在ComfyUI中实现图生视频并延长到5秒&#xff0c;需要结合多个扩展和技巧。以下是完整解决方案&#xff1a; 核心工作流配置&#xff08;24fps下5秒120帧&#xff09; #mermaid-svg-yP…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

02.运算符

目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&&#xff1a;逻辑与 ||&#xff1a;逻辑或 &#xff01;&#xff1a;逻辑非 短路求值 位运算符 按位与&&#xff1a; 按位或 | 按位取反~ …...