字符函数 和 字符串函数

今天我打算介绍一些字符函数和字符串函数,有一些字符串函数我实现了模拟,但文章中没有放出来,如果需要的欢迎来到我的gitee里面拿取(在test.c11-23里面)

这是我的gitee:小汐 (lhysxx) - Gitee.com


字符函数

1. islower

判断是否是小写字母

跳转网站

islower - C++ Reference

注意事项:

  1. int islower(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不是小写字母,非0代表输入的是小写字母)

函数参数类型:int

     2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

    <ctype.h>


代码举例

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

打印结果:


2. isupper

判断是否是大写字母

跳转网站

isupper - C++ Reference

注意事项:

  1. int islower(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是大写字母,非0代表输入的是大写字母)

函数参数类型:int

     2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

    <ctype.h>


代码举例

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

运行结果:


3. isprint

判断是否是可打印字符(ASCLL码值在0~31之间是不可见的)

跳转网站

isprint - C++ Reference

注意事项:

  1. int isprint(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是可见字符,非0代表输入的是可见字符)

函数参数类型:int

    2. 参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

  3. 头文件:

    <ctype.h>


代码举例

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

运行结果:


4. isdigit

判断是否是’0‘ — ’9‘的字符

跳转网站

isdigit - C++ Reference

注意事项:

  1. int isdigit(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是数字字符,非0代表输入的是数字字符)

函数参数类型:int

    2.参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

   3.头文件:

   <ctype.h>


代码举例

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

运行结果:


5. isspace

判断输入的是否是空白字符(包括'   ',' \f'‘ \v ' \n ' , ' \r ', ' \t ')

跳转网站

isspace - C++ Reference

注意事项:

  1. int isspace(int c)

函数返回类型:int

这里返回的是 0 和 非0 的数(0代表输入的不 是空白字符,非0代表输入的是空白字符)

函数参数类型:int

     2.参数c

可以输入的是字符(字符的本质也是数字)

要检查的字符会被强制转换为 int 或 EOF

    3.头文件:

   <ctype.h>


代码举例

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

运行结果:


6. toupper

把小写字母变成大写字母

跳转网站

toupper - C++ Reference

注意事项:

  1. int toupper(int c)

函数的返回类型: int ,函数的参数类型: int

返回的是大写字母的ASCLL码值

    2. 参数c
可以输入的是字符(字符的本质也是数字)

   3.头文件:

    <ctype.h>

代码举例

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

运行结果:


7. tolower

把大写字母变成小写字母

跳转网站

tolower - C++ Reference

注意事项:

  1. int toupper(int c)

函数的返回类型: int ,函数的参数类型: int

返回的是小写字母的ASCLL码值

     2. 参数c
可以输入的是字符(字符的本质也是数字)

    3. 头文件:

    <ctype.h>

代码举例

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

运行结果:


字符串函数

1. strlen

计算字符串的长度

跳转网站

strlen - C++ Reference

注意事项:

  1. size_t strlen ( const char * str )

函数返回类型:size_t (字符串的长度不可能为负数)

返回的值就是字符串的长度

函数参数类型: const char *

这里说明地址所指向的内容是不可以更改的

   2. 参数str:

传过来的是需要计算的字符串的首地址

  3. 头文件:

   <string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{char ch[30] = "ancd";printf("%d ", strlen(ch));return 0;
}

运行结果:

数组ch存放的元素的一定要包括'\0' ,否则可能造成越界访问

    4. 实现原理:

拿到某一个地址后,向后找 '\0' ,直到找到为止才会停下来,记录 '\0' 之前的元素个数有多少个

2. strcpy

复制字符串的内容

跳转网站

strcpy - C++ Reference

注意事项:

  1. char * strcpy ( char * destination, const char * source )

函数返回类型 : char * ,参数类型:都是 char *

返回的地址是destination的地址

    2. 参数destination 和 参数source

把source接收的地址所指向的内容复制到destination接收的地址所指向的内容

并且source接收的地址所指向的内容不可以被修改

   3. 头文件

   <string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{char ch1[] = "abcdeff";char ch2[] = "ab";strcpy(ch1,ch2);printf("%s", ch1);return 0;
}

  4. 实现原理

将一个字符数组的内容拷贝到另一个字符数组的内容里面(包括'\0'),但是需要修改内容的字符数组的内存大小一定不能小于被拷贝字符数组的内存大小

3. strcmp

比较两个字符串的大小(比较的是对应的ASCLL码值)

跳转网站

strcmp - C++ Reference

注意事项:

  1. int strcmp ( const char * str1, const char * str2 )

函数返回类型:int , 函数参数类型:都是 const char *

函数返回的是(大于0,0,小于0的数)

[如果str1所指向的字符串大小大于str2接收的,返回大于0的数;如果str1所指向的字符串大小等于str2接收的,返回0,如果str1所指向的字符串大小小于str2接收的,返回小于0的数]

    2. 参数str1 和 str2

传入的是两个需要比较的字符串的地址

   3. 头文件:

<string.h>


代码举例

#include<stdio.h>
#include<string.h>
int main()
{char ch1[] = "abcde";char ch2[] = "abcdf";printf("%d ", strcmp(ch1, ch2));return 0;
}

运行结果:

"abcd"这几个都是一样的,但是'e' 的ASCLL码值小于'f',则返回比0小的数


4. strcat

将一个字符串的内容衔接给到一个字符串内容的后面

跳转网站

strcat - C++ Reference

注意事项:

  1. char * strcat ( char * destination, const char * source )

函数返回类型:char * , 函数参数:都是 char *

返回的是被衔接的字符串的地址

    2. 参数 destination 和 source

把 source 所指向的字符串的内容(包括'\0')衔接到 destination所指向的字符串的内容后面

并且 source 所指向的字符串的内容不可以被修改

   3. 头文件

    <string.h>

代码举例

#include<stdio.h>
#include<string.h>
int main()
{char ch1[20] = "hello ";char ch2[] = "bit";strcat(ch1, ch2);printf("%s\n", strcat(ch1, ch2));printf("%s\n", ch1);return 0;
}

运行结果:


4. 实现原理

找到需要被衔接的字符串的'\0'位置的地址处,并从这里开始,后面的内容全部改成需要被复制的字符串的内容(包括'\0'),并且被衔接的字符数组空间一定要大

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vivado版本控制

Vivado版本控制 如果您有幸进入FPGA领域&#xff0c;那么会遇到版本控制问题&#xff0c;本文讲解的是如何用git进行Vivado进行版本控制。 搭建Git环境 一 首先需要一个git环境&#xff0c;并选择一个托管平台&#xff08;github,gitlab,gitee&#xff09; Git下载地址&…

Kubernetes学习笔记-Part.09 K8s集群构建

目录 Part.01 Kubernets与docker Part.02 Docker版本 Part.03 Kubernetes原理 Part.04 资源规划 Part.05 基础环境准备 Part.06 Docker安装 Part.07 Harbor搭建 Part.08 K8s环境安装 Part.09 K8s集群构建 Part.10 容器回退 第九章 K8s集群构建 9.1.集群初始化 集群初始化是首…

java+springboot校园一卡通学生卡管理系统+jsp

利用校园卡实现了学生在学校的身份认证&#xff0c;对学生在学校的各种消费提供了方便的途径。对于学校图书馆&#xff0c;将自动存储学生图书借阅情况&#xff0c;记录处罚情况.对于任课教师可以及时、准确、方便的了解学生出勤、作业等情况。是凭借发达的网络技术&#xff0c…

羽隔已就之图像处理之BP神经网络入门

小y最近非常忙&#xff0c;这一年来&#xff0c;活很多&#xff0c;一直在加班、出差&#xff0c;也没好好休息过。最近在武汉出差一个多月了&#xff0c;项目逐渐完结&#xff0c;有点闲时间了&#xff0c;回首望&#xff0c;这一年设定的很多目标都没完成。 还记得&#xff0…

JAVAEE---多线程

wait和notify--等待通知机制 当一个线程条件不满足&#xff0c;进入wait等待。其他线程这个时候获取到锁进行一系列操作后用notify唤醒线程&#xff0c;线程重新参与竞争。wait和join一样&#xff0c;也有两个版本&#xff0c;死等和按时间等待。 wait和sleep的区别 两者都可…

【KPDK】概述

DPDK的主要目标是为数据平面应用程序中的快速数据包处理提供一个简单、完整的框架。用户可以使用代码来理解所采用的一些技术&#xff0c;构建原型或添加自己的协议栈。可提供使用DPDK的替代生态系统选项。 DPDK框架通过创建环境抽象层&#xff08;EAL&#xff09;为特定环境创…

如何在Rocky Linux中安装nmon

一、环境基础 [rootlocalhost nmon16d]# cat /etc/redhat-release Rocky Linux release 9.2 (Blue Onyx) [rootlocalhost nmon16d]# uname -r 5.14.0-284.11.1.el9_2.x86_64 [rootlocalhost nmon16d]# 二、安装步骤 在Rocky Linux和AlmaLinux等基于RHEL 的发行版上&#xff…

剪切空间与归一化设备坐标【NDC】

有了投影变换的知识&#xff0c;我们现在可以讨论剪切空间&#xff08;Clip Space&#xff09;和 归一化设备坐标&#xff08;NDC&#xff1a;Normalized Device Coordinates&#xff09;。 为了理解这些主题&#xff0c;我们还需要深入了解齐次坐标的有趣世界。 NSDT工具推荐&…

【PTA-C语言】实验三-循环结构I

如果代码存在问题&#xff0c;麻烦大家指正 ~ ~有帮助麻烦点个赞 ~ ~ 实验三-循环结构I 7-1 求交错序列前N项和 &#xff08;分数 15&#xff09;7-2 寻找250&#xff08;分数 15&#xff09;7-3 最大公约数和最小公倍数&#xff08;分数 15&#xff09;7-4 统计字符&#xff0…

二十五、DSL查询文档(全文检索查询、精确查询、地理查询、复合查询)

目录 一、全文检索查询 1、match查询 语法: 2、multi_match查询 语法: 3、match和mult_match的区别 二、精确查询 1、term查询&#xff1a; 语法&#xff1a; 2、range查询&#xff1a;&#xff08;范围查询&#xff09; 语法&#xff1a; 三、地理查询 1、geo_bou…

Springboot如何快速生成分页展示以及统计条数

这是表结构&#xff1a; 前置知识&#xff1a; 分页查询公式&#xff08;&#xff09;&#xff1a; -- 推导一个公式 -- select * from emp -- order by empno -- limit 每页显示记录数 * (第几页-1)&#xff0c;每页显示记录数 统计条数公式&#xff1a; select count…

【动态规划】LeetCode-931.下降路径最小和

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…

Wordpress自动定时发布怎么开通-Wordpress怎么自动发布原创文章

在当今数字化时代&#xff0c;博客已经成为许多人分享观点、经验和知识的重要平台。然而&#xff0c;对于博主们来说&#xff0c;每天按时发布一篇又一篇的文章可能是一项具有挑战性的任务。为了解决这个问题&#xff0c;一些创新的工具应运而生&#xff0c;其中包括WordPress的…

Collection的其他相关知识

前置知识&#xff1a;可变参数 就是一种特殊参数&#xff0c;定义在方法 构造器的形参列表里&#xff0c;格式是&#xff1a;数据类型...参数名称&#xff1b; 可变参数的特点和好处 特点&#xff1a;可以不传数据给它&#xff1b;可以传一个或者同时传多个数据给它&#xff…

爬虫学习(三)用beautiful 解析html

安装库 import requests from bs4 import BeautifulSoup headers {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0"} for start_num in range(0,250…

【工作生活】汽车ECU开发内容简介

目录 1. 目标 2. 要分享什么 3.1 行业知识 3.1.1车载行业知识&#xff1a; 3.1.2项目&#xff1a; 3.1.3开发测试工具&#xff1a; 3.2 硬件平台 3.3 基础知识 3.4 工作生活 3. 我们是谁 1. 目标 随着新能源汽车的快速崛起&#xff0c;汽车电子行业开始快速发展&…

设计模式-结构型模式之外观设计模式

文章目录 七、外观模式 七、外观模式 外观模式&#xff08;Facade Pattern&#xff09;隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。它向现有的系统添加一个接口&#xff0c;来隐藏系统的复杂性。 这种模式涉及到一个单一的类&#xff0c;该类…

【华为OD题库-043】二维伞的雨滴效应-java

题目 普通的伞在二维平面世界中&#xff0c;左右两侧均有一条边&#xff0c;而两侧伞边最下面各有一个伞坠子&#xff0c;雨滴落到伞面&#xff0c;逐步流到伞坠处&#xff0c;会将伞坠的信息携带并落到地面&#xff0c;随着日积月累&#xff0c;地面会呈现伞坠的信息。 1、为了…

关于微信小程序中如何实现数据可视化-echarts动态渲染

移动端设备中&#xff0c;难免会涉及到数据的可视化展示、数据统计等等&#xff0c;本篇主要讲解原生微信小程序中嵌入echarts并进行动态渲染&#xff0c;实现数据可视化功能。 基础使用 首先在GitHub上下载echarts包 地址&#xff1a;https://github.com/ecomfe/echarts-for…

【JavaEE初阶】Thread 类及常见方法、线程的状态

目录 1、Thread 类及常见方法 1.1 Thread 的常见构造方法 1.2 Thread 的几个常见属性 1.3 启动⼀个线程 - start() 1.4 中断⼀个线程 1.5 等待⼀个线程 - join() 1.6 获取当前线程引用 1.7 休眠当前线程 2、线程的状态 2.1 观察线程的所有状态 2.2 线程状态和状…