字符串函数与字符函数运用(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\0int 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\0int 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.xdnf.cn/news/1410043.html

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

相关文章

Java 笔记 12:Java 方法的相关使用,方法重载、参数传递,以及递归等内容

一、前言 记录时间 [2024-05-02] 系列文章简摘&#xff1a; Java 笔记 01&#xff1a;Java 概述&#xff0c;MarkDown 常用语法整理 Java 笔记 02&#xff1a;Java 开发环境的搭建&#xff0c;IDEA / Notepad / JDK 安装及环境配置&#xff0c;编写第一个 Java 程序 Java 笔记 …

队列以及信号量

什么是队列 队列又称消息队列&#xff0c;是一种常用于任务间通信的数据结构&#xff0c;队列可以在任务与任务间、中断和任 务间传递信息。 为什么不使用全局变量&#xff1f; 如果使用全局变量&#xff0c;兔子&#xff08;任务1&#xff09;修改了变量 a &#xff0c;等待树…

vulnhub靶场之FunBox-1

一.环境搭建 1.靶场描述 Boot2Root ! This is a reallife szenario, but easy going. You have to enumerate and understand the szenario to get the root-flag in round about 20min. This VM is created/tested with Virtualbox. Maybe it works with vmware. If you n…

81、动态规划-爬楼梯

思路: 爬楼梯是一个特别经典的动态规划题&#xff0c;动态规划最好的办法就是从递归改到动态规划。 比如现在n阶楼梯&#xff0c;每次爬1阶或者2阶&#xff0c;一共有多少种方法。那么我就可以全排列&#xff0c;比如当前我可以走一阶算一下有多少种方法&#xff0c;然后我可…

1.C#图像区域分割与提取

&#xff08;1&#xff09;创建一个名为SplitImage的窗体的应用程序&#xff0c;将窗体改名为FormSplitImage。 &#xff08;2&#xff09;创建一个名为ImageProcessingLibrary的类库程序&#xff0c;为该工程添加名为ImageProcessing的静态类 &#xff08;3&#xff09;为Imag…

负债56亿,购买理财产品遭违约,操纵虚假粉丝,流量在下滑,客户数量减少,汽车之家面临大量风险(一)

本文由猛兽财经历时5个多月完成。猛兽财经将通过以下二十二个章节、8万字以上的内容来全面、深度的分析汽车之家这家公司。 由于篇幅限制&#xff0c;全文分为&#xff08;一&#xff09;到&#xff08;十&#xff09;篇发布。 本文为全文的第一章、第二章、第三章。 目录…

Linux的软件包管理器-yum

文章目录 软件包的概念yum源的配置的原因yum的使用查看软件包安装软件卸载软件 软件包的概念 软件包(SoftWare Package)是指具有特定的功能&#xff0c;用来完成特定任务的一个程序或一组程序。可分为应用软件包和系统软件包两大类 在Linux系统中&#xff0c;下载安装软件的方式…

web自动化时,关闭浏览器“正受自动化控制“提示语和关闭保存密码提示框

1、问题描述&#xff1a; 问题1&#xff1a;期望关闭"Chrome正在被自动测试软件控制"提示语 问题2&#xff1a;关闭谷歌浏览器--是否保存密码弹窗 2、解决 from selenium.webdriver.chrome.options import Options from selenium import webdriveroptions Options…

Leetcode—857. 雇佣 K 名工人的最低成本【困难】(DBL_MAX)

2024每日刷题&#xff08;124&#xff09; Leetcode—857. 雇佣 K 名工人的最低成本 算法思想 实现算法 class Solution { public:double mincostToHireWorkers(vector<int>& quality, vector<int>& wage, int k) {double ans DBL_MAX;priority_queue&l…

canal 自定义客户端 优雅实现 (3)

1、为啥要有数据同步&#xff1f; 比如要做一些推荐或者其他与业务不强依赖的业务&#xff0c;这个时候&#xff0c;又不想直接去业务库取数据或者查数据进行计算&#xff0c;但是又需要业务库的某些数据&#xff1a; 比如用户行为。。。等 2、有很多数据同步&#xff0c;为啥…

【RAG 论文】Selfmem:使用 LLM 自己的输出来作为下一轮的 context 从而提升自己的生成效果

论文&#xff1a;Lift Yourself Up: Retrieval-augmented Text Generation with Self Memory ⭐⭐⭐⭐ NeurIPS 2023&#xff0c;北大 文章目录 一、论文速读二、实现细节2.1 检索增强的 Generator2.2 Memory Selector2.3 Generator 的两种 mode 总结 一、论文速读 在以为 RAG…

LLM系列(4):通义千问7B在Swift/DeepSpeed上微调秘诀与实战陷阱避坑指南

LLM系列(4):通义千问7B在Swift/DeepSpeed上微调秘诀与实战陷阱避坑指南 阿里云于 2023年8 月 3 日开源通义千问 70 亿参数模型,包括通用模型 Qwen-7B 以及对话模型 Qwen-7B-Chat,这也是国内首个开源自家大模型的大厂。在诸多权威大模型能力测评基准上,如 MMLU、C-Eval、…

规控不分家,实际岗位职责是如何划分的

1. 实践和演练 2. 自动驾驶技术分类 3. 自动驾驶关键技术 4. 自动驾驶架构 5. 感知perception

前端高频算法

分析算法排序&#xff1a; 时间复杂度: 一个算法执行所耗费的时间。 空间复杂度: 运行完一个程序所需内存的大小。 执行效率、内存消耗、稳定性 三方面入手。 1. 排序 1.1 冒泡排序 冒泡的过程只涉及相邻数据的交换操作&#xff0c;所以它的空间复杂度为 O(1)。 为了保证…

solidworks出现slderrresu.dll错误如何解决?亲测有效

通过近来给客户安装SolidWorks发现&#xff0c;SolidWorks2010、SolidWorks2012、SolidWorks2014、SolidWorks2015、SolidWorks2016、SolidWorks2017都会出现这个slderrresu.dll安装错误问题&#xff1a; 其实这个错误很好解决,主要是因為安裝中文版solidworks沒有選擇安裝中文…

社交媒体数据恢复:Tandem

Tandem数据恢复方法 1. 概述 Tandem 是致力於提供語言學習者和母語者交流的語言交換app&#xff0c;已發行iOS及Android版本。 使用者可以透過文字或者語音對談找到語言交換對象。 該應用程序於2020年4月支援超過160種語言&#xff0c;其中包含12種手語。 2. 操作步骤 2.1.…

linux 光驱(光盘)安装

文章目录 选择光盘自带 YUM 库创建 repo创建文件夹挂载光驱开机自启动挂载安装软件YUM 安装RPM 安装源码包安装 选择光盘 vmware 选择光盘 自带 YUM 库 ls /etc/yum.repos.d创建 repo vim /etc/yum.repo.d/demo.repo // 编写 repo 相关配置 [demo] namedemo baseurlfile://…

预训练模型介绍

一、什么是GPT GPT 是由人工智能研究实验室 OpenAI 在2022年11月30日发布的全新聊天机器人模型, 一款人工智能技术驱动的自然语言处理工具 它能够通过学习和理解人类的语言来进行对话, 还能根据聊天的上下文进行互动,能完成撰写邮件、视频脚本、文案、翻译、代码等任务 二、 为…

【Canvas技法】流星雨的实现

【关键点】 流星的绘制&#xff0c;本质上还是绘制一条直线&#xff0c;但在渲染上有差别。 通常绘制直线都是给的固定颜色&#xff0c;绘制流星给的是渐变色&#xff0c;渐变色的开头是与背景色对比度明显的亮色&#xff0c;结尾是与背景色相同的暗色&#xff0c;中间渐变过…

基于SSM的“一汽租车辆共享平台”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“一汽租车辆共享平台”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 登录界面 租车界面 订单管理界面 财务报表界面 理赔界面 …