字符分类函数和字符串函数

news2024/12/23 19:15:57

在这里插入图片描述
Hello~,欢迎大家来到我的博客进行学习!

目录

  • 1.字符分类函数😘
    • 1.1解释以及使用🤯
    • 1.2将字符分类函数组合使用👻
    • 2 .字符转换函数🧐

1.字符分类函数😘

1.1解释以及使用🤯

在键盘上敲的字符有许多种类,如:abcdef这样的字母,‘1’、'2’这样的数字字符。在C语言中有一系列的函数是可以分辨字符到底属于哪一类的,该一系列的函数叫做字符分类函数。这些函数的使用都需要包含一个头文件ctype.h
在这里插入图片描述
在这里我选择几个进行讲解,它们的使用方法是一样的。
首先我先对islower(判断一个字符是不是小写字母)进行讲解。

#include<stdio.h>
#include<ctype.h>
int main()
{
	int ret = islower('A');
	printf("%d\n", ret);
	return 0;
}

运行结果:
在这里插入图片描述
那它的判断方法是什么呢?为何得出0这个值。
在这里插入图片描述这里的意思是:
如果传入的值是小写字母的话,会返回一个非0的值。如果传入的不是小写字母的话,返回0。
了解使用原理之后,我们可以采用以下方法进行运用。

#include<stdio.h>
#include<ctype.h>
int main()
{
	int ret = islower('X');
	if (ret)
		printf("小写\n");
	else
		printf("大写\n");
	return 0;
}

运行结果:
在这里插入图片描述
现在我对isdigit(判断是不是’0’到’9’的数字字符)进行讲解:

#include<stdio.h>
#include<ctype.h>
int main()
{
	int ret = isdigit('X');
	printf("%d\n", ret);
	return 0;
}

运行结果:
在这里插入图片描述
对于传给isdigit函数的字符,如果是数字字符,会返回非0的值,反之返回0。
此时,我们已经学会如何使用字符分类函数,这些函数是可以组合使用的。

1.2将字符分类函数组合使用👻

要求:
写一个函数,将字符串中的小写字母转大写字母,其他字符不变。
现在假设我们有一个字符串hi,I am a student.,里面可以有 ,和 . 这样的字符。我们要将这个字符串里面的小写字母转大写字母的话,需要遍历整个字符串。

char arr[] = "hi,I am a student."

这里其实我们可以想象有一个下标i,从0开始然后1,2,3…一直下去。此时我们就可以利用i下标不停的往后遍历,所以我们这里可以引入一个int类型的i,并利用while循环,里面的条件写arr[i]。因为该字符串的末尾隐藏着一个\0,\0的ASCII码是0,0为假,当我们遍历完整个数组就会停下。
当我们拿到一个字符时,我们需要进行判断是否为小写字母,就需要运用islower函数。如果为小写字母就需要转换为大写字母,小写字母与大写字母的ASCII码值相差32。最后我们打印看结果。

#include<stdio.h>
#include<ctype.h>
int main()
{
	char arr[30] = "hi,I am a student.";
	int i = 0;
	while (arr[i])
	{
		if (islower(arr[i]))
		{
			arr[i] = arr[i] - 32;
		}
		i++;
	}
	printf("%s\n", arr);
	return 0;
}

运行结果:
在这里插入图片描述
从运行结果我们可以看出,原来是大写的还是大写,原来是小写的转换为了大写。

2 .字符转换函数🧐

C语言提供了2个字符转换函数:

int tolower(int c);
int toupper(int c);

toupper是转大写的转换函数,将参数传进去的小写写字母转大写,传大写字母不做任何处理。同理tolower是转小写的转换函数,将参数传进去的大写写字母转小写,传小写字母不做任何处理。
现在我们可以测试看看:

#include<stdio.h>
#include<ctype.h>
int main()
{
	printf("%c\n", tolower('A'));
	printf("%c\n", toupper('a'));
	return 0;
}

运行结果:
在这里插入图片描述
tolower它会返回对应的小写a的ASCII码值,但是我们是以%c的形式打印,所以结果是字符。toupper的原理也是一样这里我不再一 一解释。有了这个函数,刚才我们写小写转大写的代码可以重新写一下。此时,我们不知道a和A的差值,也可以进行转换。

#include<stdio.h>
#include<ctype.h>
int main()
{
	char arr[30] = "hi,I am a student.";
	int i = 0;
	while (arr[i])
	{
		if (islower(arr[i]))
		{
			arr[i] = toupper(arr[i]);
		}
		i++;
	}
	printf("%s\n", arr);
	return 0;
}

运行结果:
在这里插入图片描述
此时,我们就学会了字符分类函数和字符串函数的相关知识!😆大家如果感兴趣,请一键三连!😘如果存在问题,各位大佬请在评论区斧正!🥰十分感谢大家的支持!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

揭秘高效日志管理:解锁数据宝藏,驱动业务精准决策

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…

duckdb 连接postgres 和 jdbc 的使用

why&#xff1f; 主要是特别快 嵌入式&#xff0c;不需要服务器&#xff0c;使用超级方便 扩展机制灵活&#xff0c;可以直接读取CSV、JSON、Parquet等文件 Parquet文件格式详解&#xff08;含行、列式存储区别&#xff09;_parquet格式-CSDN博客 采用列式存储&#xff08;用…

边缘计算网关:连接中心计算与边缘设备的重要桥梁-天拓四方

一、边缘计算网关&#xff1a;重新定义信息高速公路的“路标” 边缘计算网关&#xff0c;作为边缘计算生态系统中的核心组件&#xff0c;不仅承载着数据传输的功能&#xff0c;更是智能信息处理的关键节点。它通过分布式计算架构&#xff0c;将数据处理任务前置到网络边缘&…

JDK 收费了,怎么应对?难道 JDK 8 一直用下去吗?

最近遇到一个问题&#xff1a;Oracle JDK 8 在 ARM 机器上性能特别差&#xff01; 我的第一直觉就是是不是 JDK 8 在 ARM 不兼容&#xff1f; 为了研究这个问题&#xff0c;我探究了一圈&#xff0c;主要是找找有没有同行遇到这个问题&#xff0c;在找的过程中呢&#xff0c;发…

基于vue框架的宠物领养系统l3a76(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能&#xff1a;用户,宠物信息,宠物领养,宠物品种,团队信息,入团申请,团队活动 开题报告内容 基于Vue框架的宠物领养系统开题报告 一、引言 随着宠物文化的普及和人们对宠物情感的日益加深&#xff0c;宠物领养已成为社会关注的热点之一。然而&#…

# 大模型的第一个杀手级应用场景出来了

大家终于都意识到大模型首先改变的是软件行业自己&#xff0c;而软件的根基是代码生成。代码生成第一波就是AI辅助开发&#xff0c;这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用&#xff0c;为什么会是辅助编程&#xff0c;这里说下什么&#xff1a; 必…

利用shuji还原webpack打包源码

0 前言 前段时间做一个银行的项目&#xff0c;是在别人已经打过好多次的基础上继续打&#xff0c;而且时间很短&#xff0c;也是没办法要有产出&#xff0c;这个银行很多站点都是webpack打包&#xff0c;就新学了一个点&#xff1a;利用shuji获取webpack打包站源码&#xff08…

2025届京东校招薪酬全面上调,加薪20%!

就在近日京东官方发布声明&#xff0c;今年 2025 届校招岗位的薪资将全面上调&#xff0c;再次加薪&#xff01;其中&#xff0c;采销、技术、产品等核心岗位薪酬上调不低于20%&#xff0c;产研类岗位更狠&#xff0c;算法岗平均起薪涨幅超75%&#xff0c;硬件和设计等岗位起薪…

2024年06月中国电子学会青少年软件编程(图形化)等级考试试卷(一级)答案 + 解析

青少年软件编程&#xff08;图形化&#xff09;等级考试试卷&#xff08;一级&#xff09; 分数&#xff1a;100 题数&#xff1a;37 一、单选题 音乐Video Game1的时长将近8秒&#xff0c;点击一次角色&#xff0c;下列哪个程序不能完整地播放音乐两次&#xff1f;&#xff0…

java实现根据延迟法定退休政策计算退休年龄

一、计算规则 从2025年1月1日起&#xff0c;男职工和原法定退休年龄为五十五周岁的女职工&#xff0c;法定退休年龄每四个月延迟一个月&#xff0c;分别逐步延迟至六十三周岁和五十八周岁&#xff1b;原法定退休年龄为五十周岁的女职工&#xff0c;法定退休年龄每二个月延迟一…

应急响应实战---是谁修改了我的密码?

前言&#xff1a;此次应急响应为真实案例&#xff0c;客户反馈无法通过密码登录服务器&#xff0c;疑似服务器被入侵 0x01 如何找回密码&#xff1f; 客户服务器为windows server2019&#xff0c;运维平台为PVE平台&#xff1b;实际上无论是windows系统或者是linux系统&#…

从简单分析到智能问数,Smartbi AIChat让数据回归业务

大数据产业创新服务媒体 ——聚焦数据 改变商业 在某科技公司&#xff0c;资深数据分析师李晨&#xff08;化名&#xff09;正忙于分析新产品的市场表现。面对传统自助式BI工具&#xff0c;李晨在功能界面中手动设置各种查询条件&#xff0c;进行了一番复杂的拖拉拽操作&#…

spring模块(六)spring监听器(3)广播与异步问题

发布事件和监听器之间默认是同步的&#xff1b;监听器则是广播形式。demo&#xff1a; event&#xff1a; package com.listener.demo.event;import com.listener.demo.dto.UserLogDTO; import org.springframework.context.ApplicationEvent;public class MyLogEvent extends…

界面控件DevExpress中文教程:如何PDF图形对象的可见性?

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 近期重要版本v24.1已正式发布&#xff0c;该版本拥有众多新产…

数据资产盘点

数据资产盘点包含调研诊断、数据盘点、数据对标校正、分类分级、权责划分、数据资产目录建立六大环节。调研诊断&#xff1a;通常采用访谈或案头梳理的方式&#xff0c;对 IT 整体建设情况、业务系统数据情况进行调研&#xff0c;框定数据资产管理范围、聚焦目标。 数据盘点&a…

spring整合mabatis框架(druid连接池)

spring整合mabatis框架&#xff0c;duird连接池&#xff0c;Junit5测试框架 1&#xff09;创建Maven工程 2&#xff09;导入相关的依赖 <!--springContext依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-contex…

helm一键化部署pod

目录 概念 安装helm helm的命令 自定义模版 回滚 概念 helm提供了一个模版&#xff0c;可以一键化的部署微服务。它通过打包的方式&#xff0c;把所有需要的yaml文件集合一起&#xff0c;然后一键部署&#xff0c;还可以支持回滚。 helm的本质&#xff1a;就是可以把k8s…

低压电抗器与电容器安装距离

低压电抗器与电容器的安装距离是一个关键问题&#xff0c;主要考虑电气安全、热效应以及电磁干扰等因素。通常建议保持适当的安装距离以确保设备的正常运行和安全性。 以下是一些常见的参考原则&#xff1a; 1、热效应 电抗器和电容器在运行过程中都会产生热量。如果两者之间距…

代数模型(Algebraic Models)---线性规划------ + 案例 + Python源码求解(见文中)

目录 一、代数模型&#xff08;Algebraic Models&#xff09;详解1.1什么是代数模型&#xff1f;1.2代数模型的基本形式1.3 安装所需要的Python包--运行下述案例1.4代数模型的应用案例案例 1&#xff1a;市场供需平衡模型Python求解代码Python求解结果如下图&#xff1a; 案例 …

GDPU MySQL数据库 天码行空1 数据库的创建和基本操作

一、实验目的 1&#xff0e;熟知机房用机安全规则。 2&#xff0e;通过上机操作&#xff0c;加深对数据库系统理论知识的理解&#xff1b;通过使用具体的DBMS&#xff0c;了解一种实际的数据库管理系统&#xff0c;并掌握其操作技术&#xff1b;通过对实际题目的上机实验&…