c语言练习48:总结字符函数和字符串函数

news2025/1/15 17:19:22

总结字符函数和字符串函数

字符函数

1. 字符分类函数

C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h

2. 字符转换函数 

 字符串函数

. strlen的使⽤

•字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' )。

• 参数指向的字符串必须要以 '\0' 结束。

• 注意函数的返回值为size_t,是⽆符号的( 易错 )

. strlen的作用

strlen函数是C语言中的一个字符串处理函数,其作用是计算一个字符串的长度,即字符串中字符的个数(不包括结尾的空字符’\0’)。它的函数原型为:

size_t strlen(const char *str);

其中,str是一个指向字符数组(字符串)的指针。函数会从str指针位置开始逐个检查字符,直到遇到字符串结尾的空字符’\0’为止,然后返回字符的数量。

.strcpy的使⽤

• 源字符串必须以 '\0' 结束。

• 会将源字符串中的 '\0' 拷⻉到⽬标空间。

• ⽬标空间必须⾜够⼤,以确保能存放源字符串。

• ⽬标空间必须可变。

.strcpy的作用

strcpy函数是C语言中的一个字符串处理函数,用于将一个字符串复制到另一个字符串中。它的作用是将源字符串的内容复制到目标字符串中,并且包括字符串结束的空字符’\0’。strcpy函数的原型如下:

char *strcpy(char *dest, const char *src);

其中,dest是目标字符串的指针,src是源字符串的指针。函数执行完毕后,目标字符串将包含与源字符串相同的内容。

需要注意的是,使用strcpy函数时应确保目标字符串有足够的空间来存放源字符串的内容,以避免发生溢出错误。另外,源字符串必须以空字符’\0’结尾,否则会导致未定义的行为。

.strcat的使⽤

• 源字符串必须以 '\0' 结束。

• ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。

• ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。

• ⽬标空间必须可修改。

.strcat的作用

strcat是一个C字符串操作函数,用于将一个字符串追加到另一个字符串的末尾。它的作用是将源字符串的内容复制到目标字符串的末尾,并在目标字符串的末尾添加一个空字符(‘\0’),以标记字符串的结束。

函数原型如下:

 

char *strcat(char *destination, const char *source);

其中,destination是目标字符串,source是源字符串。函数返回的是指向目标字符串的指针。

使用strcat函数时,需要确保目标字符串有足够的空间来容纳源字符串的内容,否则可能导致缓冲区溢出的错误。

下面是一个使用strcat函数的示例:

#include <stdio.h>
 #include <string.h> 
int main() {
 char destination[30] = "Hello"; 
const char *source = " World!"; 
strcat(destination, source); 
printf("%s\n", destination); 
return 0; 
}

运行结果为:

Helo World!

在上述示例中,源字符串" World!“被追加到了目标字符串"Hello"的末尾,得到了最终的字符串"Hello World!”。注意,在使用strcat函数时,需要确保目标字符串有足够的空间来容纳源字符串的内容。

. strcmp 的使⽤

◦ 第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字

◦ 第⼀个字符串等于第⼆个字符串,则返回0

◦ 第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字

strncpy 函数的使⽤

• 拷⻉num个字符从源字符串到⽬标空间。

• 如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个。

 . strncat 函数的使⽤

strncat函数用于将一个字符串的一部分追加到另一个字符串的末尾。

它接受三个参数:目标字符串、源字符串和追加的最大字符数。

它会将源字符串中的字符复制到目标字符串的末尾,直到达到指定的最大字符数或者遇到源字符串的结束符’\0’为止。

这个函数的作用是可以在不覆盖目标字符串原有内容的情况下,将源字符串的一部分连接到目标字符串之后。

strncmp函数的使⽤

 ⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0.

strstr的使⽤

strstr是一个在字符串中搜索子字符串的函数。它可以用来检查一个字符串中是否包含另一个字符串,并返回第一次出现的位置。它的原型如下:

char* strstr(const char* str1, const char* str2);
其中,str1是要搜索的字符串,str2是要查找的子字符串。当找到子字符串时,函数返回指向子字符串第一次出现的地址;如果没有找到,则返回NULL。

例如,我们可以使用strstr函数来检查一个字符串是否包含某个关键字。如果返回的指针不为NULL,则说明关键字存在于原字符串中。

. strtok函数的使⽤

• sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合

• 第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标 记。

• strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。(注: strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容 并且可修改。)

• strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串 中的位置。

• strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标 记。

• 如果字符串中不存在更多的标记,则返回 NULL 指针。

strerror函数的使⽤

strerror函数可以把参数部分错误码对应的错误信息的字符串地址返回来。 在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明 的,C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动 的时候errno是0,表⽰没有错误,当我们在使⽤标准库中的函数的时候发⽣了某种错误,就会讲对应 的错误码,存放在errno中,⽽⼀个错误码的数字是整数很难理解是什么意思,所以每⼀个错误码都是 有对应的错误信息的。strerror函数就可以将错误对应的错误信息字符串的地址返回。

 

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

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

相关文章

Linux操作系统基础知识

目录 一、什么是Linux 二、如何有一个Linux环境 三、基本的 Linux 命令 1. pwd - 显示当前工作目录 2. ls - 列出文件和目录 3. cd - 切换目录 4. mkdir - 创建目录 5. rm - 删除文件或目录 6. cp - 复制文件或目录 7. mv - 移动文件或目录 8. touch - 创建空文件 9…

智能座舱概述

文章目录 智能座舱智能驾驶一、汽车座舱历经机械化、电子化&#xff0c;向智能化不断演进二、智能座舱的定义&#xff1a;车内升级车外互联1.从车内看2.从车外看 三、电子座舱、智能助理、人机共驾、第三生活空间 智能座舱智能驾驶 智能汽车以“座舱”“底盘”上下两大智能化系…

短视频去水印

一、使用方法 打开短视频APP&#xff0c; 选择要下载的视频&#xff0c;点击右下角分享按钮&#xff0c;在分享弹框中点击“复制链接” 将刚才复制的链接粘贴到下面的输入框&#xff08;中文可以不用去掉&#xff09; 二、短视频解析王源码 public function analysis($video…

音视频技术开发周刊 | 310

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 学术头条 | 基于网络科学的人工智能揭示基因信息如何利用单细胞塑造形体 近日&#xff0c;由清华大学脑与智能实验室复杂网络智能中心&#xff08;CCNI&#xff09;主任Ca…

监听对象中属性变化(一个或多个属性、全部属性)

一、数据监听器 什么是数据监听器 数据监听器用于监听和响应任何属性和数据自动的变化&#xff0c;从而执行特定的操作。它的作用类似于vue中的watch侦听器。在小程序中&#xff0c;基本语法格式如下&#xff1a; Component({observers: {字段A&#xff0c;字段B: function(字…

计算机丢失msvcp140.dll是什么意思?msvcp140.dll丢失的解决方法

在使用计算机的过程中&#xff0c;我们可能会遇到各种奇葩的问题。其中&#xff0c;一个常见的问题是计算机提示丢失msvcp140.dll。这个文件是Microsoft Visual C 2015 Redistributable的一部分&#xff0c;通常用于支持一些软件&#xff08;如游戏、办公软件等&#xff09;的运…

遗忘因子递推最小二乘参数估计(FFRLS)

基于遗忘因子的最小二乘法电池参数辨识 最小二乘法是系统辨识中最常用的一种估算方法。为了克服最小二乘法存在”数据饱和”的问题&#xff0c;我们通常采用含有遗忘因子的递推最小二乘法(Forgetting Factor Recursive Least Square,FFRLS)算法进行电池模型的参数辨识。 1、二…

图片码二次渲染绕过

目录 一、环境 1、代码 2、文件处理方式 3、图片码的制作 二、绕过图片重构 1、可行性分析 2、数据比对 3、完成绕过 一、环境 以upload-labs靶场第十七关为例 1、代码 源码为&#xff1a; <?php include ../config.php; include ../head.php; include ../menu.…

管理类联考——数学——汇总篇——知识点突破——应用题——分段计费

👊 分段计费是指不同的范围对应着不同的计费方式,在实际中应用很广泛,比如电费,水费、邮费、个税、话费、出租车费、销售提成等等。解题思路的关键点有两个,一个是先计算每个分界点的值,确定所给的数值落入哪个范围;另外,对应选取正确的计费表达式,按照所给的标准进…

腾讯云CVM S5服务器性能测评和租用价格1年和五年

腾讯云服务器CVM五年时长&#xff0c;2核2G服务器5年1728元、2核4G1M带宽五年3550、4核8G服务器6437元五年&#xff0c;CVM标准型S5实例可选2核2G、2核4G和4核8M&#xff0c;公网带宽可1M、3M和5M&#xff0c;系统盘为50G高性能云硬盘&#xff0c;S5云服务器CPU采用Intel Xeon …

模电课设:用Multisim简单了解二极管

1 课设内容 1&#xff09;测试二极管伏安特性电路&#xff1b; 2&#xff09;二极管的整流电路及负载对输出电压和纹波的影响&#xff1b; 2 模型搭建 电路一&#xff1a;测试二极管伏安特性的电路如下图所示&#xff0c;结构十分简单&#xff0c;直流电源串联上二极管组成一…

windows10搭建llama大模型

背景 随着人工时代的到来及日渐成熟&#xff0c;大模型已慢慢普及&#xff0c;可以为开发与生活提供一定的帮助及提升工作及生产效率。所以在新的时代对于开发者来说需要主动拥抱变化&#xff0c;主动成长。 LLAMA介绍 llama全称&#xff1a;Large Language Model Meta…

c#中字段和属性的区别,委托和事件的区别

IDE眼里的字段和属性 class Test {public int age1 12;public int Age2 { get; set; } 18;public void Show(){Console.WriteLine(age1);Console.WriteLine(Age2);} }很多新人发现在类中定义变量时&#xff0c;有些人会在后面写上get,set。 这种写法定义出来的变量&#xf…

数据结构与算法-二叉搜索树红黑树

一&#xff1a;二叉搜索树 大家来看以下几个结构&#xff1a;下图中的 二叉搜索树又叫二叉查找树&#xff0c;二叉排序树&#xff1b; 它具有以下特点&#xff1a; 1.如果它的左子树不为空&#xff0c;则左子树上结点的值都小于根结点。 2.如果它的右子树不为空&#xff0c;则右…

动手学深度学习——Windows下的环境安装流程(一步一步安装,图文并配)

目录 环境安装官网步骤图文版安装Miniconda下载包含本书全部代码的压缩包使用conda创建虚拟&#xff08;运行&#xff09;环境使用conda创建虚拟环境并安装本书需要的软件激活之前创建的环境打开Jupyter记事本 环境安装 文章参考来源&#xff1a;http://t.csdn.cn/tu8V8 官网…

编程初学者指南(2023版):零基础小白如何学习编程-两万字详述

文章目录 1.写在前面1.1 为什么有这份指南1.2 指南里有什么1.3 关于软件协会1.4 面对人生&#x1f340; 对工作&#xff1a;越努力越幸运&#x1f340; 对感情&#xff1a;爱得厚重开阔&#x1f340; 对他人&#xff1a;保持尊重、友好、真诚和谦逊&#x1f340; 对生活&#x…

【论文解读】元学习:MAML

一、简介 元学习的目标是在各种学习任务上训练模型&#xff0c;这样它就可以只使用少量的训练样本来解决新任务。 论文所提出的算法训练获取较优模型的参数&#xff0c;使其易于微调&#xff0c;从而实现快速自适应。该算法与任何用梯度下降训练的模型兼容&#xff0c;适用于…

群辉 Synology NAS Docker 安装 RustDesk-server 自建服务器只要一个容器

from https://blog.zhjh.top/archives/M8nBI5tjcxQe31DhiXqxy 简介 之前按照网上的教程&#xff0c;rustdesk-server 需要安装两个容器&#xff0c;最近想升级下版本&#xff0c;发现有一个新镜像 rustdesk-server-s6 可以只安装一个容器。 The S6-overlay acts as a supervi…

【Proteus仿真】【STM32单片机】便携式血糖仪

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 系统运行后&#xff0c;LCD1602显示开机界面信息&#xff0c;当按下K1键开始测量&#xff0c;步进电机运行启动针头采血&#xff0c;然后检测血糖值显示在屏幕上&#xff1b;如果血糖高于上限&#xff0c…

Upload-labs十六和十七关

目录 第十六关第十七关 第十六关 直接上传php文件判断限制方式&#xff1a; 同第十五关白名单限制 第十六关源码&#xff1a; 代码逻辑判断了后缀名、content-type&#xff0c;以及利用imagecreatefromgif判断是否为gif图片&#xff0c;最后再做了一次二次渲染 第71行检测…