字符串函数与字符函数运用(1)

字符串与字符函数介绍1

  • 前言
  • 一、字符分类函数
    • 字符函数练习
  • 二、字符函数转换
    • 1.引入库
    • 2.代码改进
  • 字符串函数
    • strlen函数
    • strcpy
  • 结尾


前言

字符串函数大概有以下这几种 strcpy、strcat 、strcmp、strncpy、strncat、strncmp、strstr、strtok、strerror

这些函数可以很好的解决你所遇到的关于字符串相对应的问题

字符函数


以下是本篇文章正文内容,下面案例可供参考

一、字符分类函数

在这里插入图片描述
这些函数都是放在一个头文件 ctype.h
在这里插入图片描述

这些函数运用都差不多
比如:islower字符函数
函数类型

int islower(int c)//这是islower的函数,(int c)实际上是传字符的ASCALL码值
返回值
在这里插入图片描述
如果输入的值不是小写字母的话就返回0
如果是小写字母的话就返回一个非0值

代码展示

int main()
{
	int ret = islower('a');
	printf("%d\n", ret);
	return 0;
}

在这里插入图片描述

字符函数练习

//写个代码,将字符串的小写字母转大写字母,其他字符不变.
int main()
{
	char arr[] = "I AM A student";
	 //           I AM A student\0
	int i = 0;
	while (arr[i] != '\0')
	{
		if (arr[i] >= 'a' && arr[i] <= 'z')
		{
			arr[i] -= 32;
		}

		i++;
	}
	printf("%s", arr);


	return 0;
}

通过所学的字符函数我们就可以进行替换
int main()
{
char arr[] = “I AM A student”;
// I AM A student\0
int i = 0;
while (arr[i]!=‘\0’)
{
if (islower(arr[i]))//在这里替换
{
arr[i] -= 32;
}
i++;
}
printf(“%s”, arr);
return 0;
}

总而言之:
这些字符函数都与islower用法相似,不是所要判断的内容就返回
0;否则就返回非0值

二、字符函数转换

1.引入库

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

  1. int tolower(int c);//将参数传进去的大写字母转小写
  2. int toupper(int c);//将参数传进去的小写字母转大写
int main()
{
	printf("%c\n",toupper('a'));
	printf("%c\n", tolower('A'));
	return 0;
}

在这里插入图片描述

通过字符转换
那么我们可以进一步的改良大写转小写的项目
int main()
{
char arr[] = “I AM A student”;
// I AM A student\0
int i = 0;
while (arr[i]!=‘\0’)
{
if (islower(arr[i]))
{
arr[i] =toupper(arr[i]);//在这里替换
}
i++;
}
printf(“%s”, arr);
return 0;
}

2.代码改进

通过字符转换
那么我们可以进一步的改良大写转小写的项目

代码如下(示例):

int main()
{
	char arr[] = "I AM A student";
	//           I AM A student\0
	int i = 0;
	while (arr[i]!='\0')
	{
		if (islower(arr[i]))
		{
			arr[i] =toupper(arr[i]);//在这里替换
		}
		i++;
	}
	printf("%s", arr);
	return 0;
}

字符串函数

1. 懂得怎么运用字符串函数
2. 深刻理解字符串函数的实现
3. 模拟字符串函数<一步一步的解析字符串函数>

strlen函数

strlen的详细内容在这里插入图片描述

  1. 返回值size_t

如图所示
int main()
{// 3 - 4
if (strlen(“abc”) - strlen(“abcdef”)>0)
{
printf(“>\n”);
}
else
{
printf(“<=\n”);
}
}
在这里插入图片描述
>因为这里的strlen返回值是size_t无符号数,
那么3-4=(无符号数)
所以结果是>0的值;返回>

  1. strlen模拟实现
    方式1:
//方式1:计数器
int count(char* arr1)
{
	int a = 0;
	int i = 0;
	while (arr1[i] != '\0')
	{
		i++;
		a++;
	}
	return a;
}

方式2:递归

int cwz(char* arr1)
{
assert(arr1);
if(*arr1=='\0')
{
return 0;
}
else
{
return 1+cwz(arr1+1);
}
}

方法3:指针

int cwz(char* arr1)
{
assert(arr1);
char* p=arr1;
while(*p!='\0')
{
p++;
}
return p-arr1;

strcpy

char* strcpy(chardestination,charsource )
1:strcpy函数的主要功能就是复印的作用
(1)strcpy返回的类型是char*,参数是指针。
2:参数
(1)我们要把源头的字符要打印到目的地
(2)条件一:而且目的地的(数组的容量要够大)
条件二:源头的数组最后不能没有‘\0’

如果没有程序会崩溃
在这里插入图片描述

3:模拟实现strcpy

void cwz(char* dest, const char* source)
{
	assert(dest);
	assert(source);
	while (*source != '\0')
	{
		*dest = *source;
		dest++;
		source++;
	}
	*dest = *source;
}

int main()
{
	char arr[] = "sfaskf";
	char arr1[30] = { 0 };
	cwz(arr1, arr);
	printf("%s", arr1);
}

在这里插入图片描述

结尾

字符串函数与字符函数(1)
到此结束喽!!!
我也会尽快更更新(2)ლ(′◉❥◉`ლ)敬请期待后续内容。

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

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

相关文章

DRF中的请求入口分析及request对象分析

DRF中的请求入口分析及request对象分析 django restframework框架是在django的基础上又给我们提供了很多方便的功能&#xff0c;让我们可以更便捷基于django开发restful API 1 drf项目 pip install django pip install djangorestframework1.1 核心配置 INSTALLED_APPS [d…

神经网络中常见的激活函数:理解与实践

神经网络中常见的激活函数&#xff1a;理解与实践 在神经网络中&#xff0c;激活函数是一个非常重要的组成部分&#xff0c;它为神经元引入了非线性特性&#xff0c;使得神经网络可以拟合各种复杂的函数关系。本文将介绍9种常见的激活函数&#xff0c;包括它们的概述、公式以及…

《百图解码支付系统设计与实现》电子书_V20240503

《百图解码支付系统设计与实现》这本书的底稿已经完成一半&#xff0c;从2023.12.24发布专栏第一篇文章“跟着图走&#xff0c;学支付&#xff1a;在线支付系统设计的图解教程”算起&#xff0c;陆续写了30来篇支付相关的干货。 本书是我的专栏《百图解码支付系统设计与实现》…

基于Spring Boot的校园闲置物品交易网站设计与实现

基于Spring Boot的校园闲置物品交易网站设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 系统功能界面图&#xff0c;在系统首页可以查看…

springboot项目组合定时器schedule注解实现定时任务

springboot项目组合定时器schedule注解实现定时任务&#xff01; 创建好springboot项目后&#xff0c;需要在启动类上增加注解开启定时器任务 下图所示&#xff1a; 增加这个注解&#xff0c;启动项目&#xff0c; package com.example.scheduledemo.util;import org.springf…

C++中的异常

目录 1.C语言传统的处理错误的方式 2. C异常概念 3. 异常的使用 3.1 异常的抛出和捕获 3.2 异常的重新抛出 3.3异常安全 3.4 异常规范 4.自定义异常体系 5.C标准库的异常体系 6.异常的优缺点 7.func&#xff08;&#xff09; throw();的方式规范化 1.C语言传统的处理…

C语言字符串(0基础到深入剖析)---字符串系列合集(函数+指针+数组)

前言 本篇旨在帮助不了解字符串或者逻辑梳理不够透彻的伙伴们理出一条脉络。选择能看懂的部分即可&#xff0c;建议收藏&#xff0c;后期学习完C语言方便回顾。 适用范围&#xff1a;0基础C语言&#xff08;刚学字符串&#xff09;- 学过函数 - 学过指针 ---大致了解了数据内…

Centos7 安装Git、使用

Centos7 安装Git 一、安装步骤1.1 查看版本1.2 卸载1.3 安装 二、创建仓库2.1 新增仓库2.2 新增配置项 三、管理文件3.1 文件创建3.2 文件修改、add、commit3.3 tree结构探索 四、分支4.1 创建分支&#xff1a;4.2 查看分支4.3 切换分支4.4 删除分支4.5 合并冲突 一、安装步骤 …

FusionMamba: Efficient Image Fusion with State Space Model【文献阅读】

论文&#xff1a;FusionMamba&#xff1a;一种基于SSM的有效图像融合方法 arXiv&#xff1a;https://arxiv.org/abs/2404.07932 作者单位&#xff1a;中国科学院自动化研究所、模式识别重点实验室、电子科技大学 推荐阅读&#xff1a;深入浅出一文图解Vision Mamba Abstract 图…

3.自动驾驶-局部路径规划

1. 规划planning 2. 局部路径规划模块实现-模块外围&#xff1a;输入 3. 局部路径规划模块实现模块外围:输出 4. 控制control 5. 系统分类 6 系统分类

C 认识指针

目录 一、取地址操作符&#xff08;&&#xff09; 二、解引用操作符&#xff08;*&#xff09; 三、指针变量 1、 指针变量的大小 2、 指针变量类型的意义 2.1 指针的解引用 2.2 指针 - 整数 2.3 调试解决疑惑 认识指针&#xff0c;指针比较害羞内敛&#xff0c;我们…

自定义SpringBoot的starter

案例需求&#xff1a;自定义redis-stater。要求当导入redis坐标时&#xff0c;SpringBoot自动创建Jedis的Bean。 实现步骤&#xff1a; 1、创建redis-spring-boot-autoconfigure模块 2、创建redis-spring-boot-starter模块&#xff0c;依赖redis-spring-boot-autoconfigure的…

Android 文件传输

经常写adb命令传文件&#xff0c;结果发现Android studio有自带的文件管理器&#xff0c;可以上传下载文件。

程序包的创建

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 前面很多范例中都用到的 dbms output.put_line 实际上就是一个典型的程序包应用&#xff0c; 其中 dbms output是程序包的名称&#xff0c;put_line 是该程序包中定义的一个…

碳纤维复合材料的纳米纤维膜

碳纤维复合材料的纳米纤维膜是一种具有良好性能和应用前景的新材料。以下是关于这种材料的详细介绍&#xff1a; 制备方法&#xff1a;碳纤维复合材料的纳米纤维膜可以通过多种方法制备&#xff0c;包括化学气相沉积法、固相合成法、模板法等。其中&#xff0c;化学气相沉积法是…

十三、大模型项目部署与交付

1 硬件选型 CUDA 核心和 Tensor 核心 CUDA 核心&#xff1a;是NVIDIA开发的并行计算平台和编程模型&#xff0c;用于GPU上的能用计算&#xff0c;可做很多的工作。应用在游戏、图形渲染、天气预测和电影特效Tensor 核心&#xff1a;张量核心&#xff0c;专门设计用于深度学习…

YOLOv5入门(四)训练自己的目标检测模型

前言 通过前面几篇文章&#xff0c;已经完成数据集制作和环境配置&#xff08;服务器&#xff09;&#xff0c;接下来将继续实践如何开始训练自己数据集~ 往期回顾 YOLOv5入门&#xff08;一&#xff09;利用Labelimg标注自己数据集 YOLOv5入门&#xff08;二&#xff09;处…

【PyTorch与深度学习】2、PyTorch张量的运算API(上)

课程地址 最近做实验发现自己还是基础框架上掌握得不好&#xff0c;于是开始重学一遍PyTorch框架&#xff0c;这个是课程笔记&#xff0c;这个课还是讲的简略&#xff0c;我半小时的课听了一个半小时。 1. 张量 1.1 张量操作 &#xff08;1&#xff09;chunk&#xff1a;将一…

华为手机ip地址怎么切换

随着移动互联网的普及&#xff0c;IP地址成为了我们手机上网的重要标识。然而&#xff0c;在某些情况下&#xff0c;我们可能需要切换手机的IP地址&#xff0c;以更好地保护个人隐私、访问特定地区的内容或服务&#xff0c;或者出于其他网络需求。华为手机作为市场上的热门品牌…

Kafka客户端工具:Offset Explorer 使用指南

Kafka作为一个分布式流处理平台&#xff0c;在大数据处理和实时数据流应用中扮演着至关重要的角色。管理Kafka的topics及其offsets对于维护系统稳定性和数据一致性至关重要。Offset Explorer是一个强大的桌面应用程序&#xff0c;它使得管理和监控Kafka集群变得简单直观。本文将…
最新文章