字符函数 和 字符串函数

今天我打算介绍一些字符函数和字符串函数,有一些字符串函数我实现了模拟,但文章中没有放出来,如果需要的欢迎来到我的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'),并且被衔接的字符数组空间一定要大

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

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

相关文章

oj赛氪算法练习

单词翻转 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String sentence scanner.nextLine();String[] words sentence.split(" ");for (String word : words) {StringBuilder …

项目中遇到的半导体公司

作为一个技术人&#xff0c;我并不是亲美&#xff0c;从技术的实事求是角度讲&#xff0c;不得不感叹欧美的半导体技术。他们的datasheet能学到的东西太多太多&#xff1b;我甚至佩服他们缜密的逻辑。从他们的文章中领悟我们技术到底有多low&#xff0c;没办法一个一个了解所有…

华为OD机试 - 悄悄话(Java JS Python C)

题目描述 给定一个二叉树,每个节点上站一个人,节点数字表示父节点到该节点传递悄悄话需要花费的时间。 初始时,根节点所在位置的人有一个悄悄话想要传递给其他人,求二叉树所有节点上的人都接收到悄悄话花费的时间。 输入描述 给定二叉树 0 9 20 -1 -1 15 7 -1 -1 -1 -1 …

[c]比较月亮大小

本题的难点就是分情况讨论 #include<stdio.h> int main() {int n;scanf("%d",&n);int arr2[n];int p;for(int m0;m<n-1;m){scanf("%d",&arr2[m]);//输入n个数保存到数组}if(n1)//当输入一个数据时&#xff0c;输入0&#xff0c;可以判断…

思维模型 韦伯-费希纳定律

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。感觉与刺激成对数关系。 1 韦伯-费希纳定律的应用 1.1 韦伯-费希纳定律在工业设计中的应用 1 苹果公司的 iPhone 设计 苹果公司的 iPhone 设计是韦伯-费希纳定律在工业设计中的经典应用之…

手敲MyLinkedList,简单了解其运行逻辑

1.LinkedList的介绍和结构 LinkedList的底层是双向链表结构&#xff0c;相对于之前的单向无头非循环链表来说&#xff0c;LinkedList最大的区别就是该链表可以增加了一条链接逻辑&#xff0c;可以从最后一个节点通过地址访问来到整个链表的头结点。 通过以下集合框架&#xff0…

【Java 基础】15 注解

文章目录 1.什么是注解2.元注解1&#xff09;定义2&#xff09;分类 3.内置注解4.自定义注解5.注解的基本语法6.验证注解是否生效7.注解的使用场景8.注解的注意事项结语 1.什么是注解 注解&#xff08;Annotation&#xff09;可以理解成一种特殊的 “注释” 注解定义时以 符号…

02.PostgreSQL 查询处理期间发生了什么?

PostgreSQL 查询处理期间发生了什么&#xff1f; 文中主要内容引用自PostgreSQL指南&#xff1a;内幕探索 查询处理是PostgreSQL中最为复杂的子系统。如PostgreSQL官方文档所述&#xff0c;PostgreSQL支持SQL2011标准中的大多数特性&#xff0c;查询处理子系统能够高效地处理这…

深度学习记录--梯度下降法

什么是梯度下降法&#xff1f; 梯度下降法是用来求解成本函数cost函数中使得J(w,b)函数值最小的参数(w,b) 梯度下降法的实现 通过对参数w,b的不断更新迭代&#xff0c;使J(w,b)的值趋于局部最小值或者全局最小值 如何进行更新&#xff1f; 以w为例&#xff1a;迭代公式 ww-…

Spring MVC学习随笔-控制器(Controller)开发详解:接受客户端(Client)请求参数

学习视频&#xff1a;孙哥说SpringMVC&#xff1a;结合Thymeleaf&#xff0c;重塑你的MVC世界&#xff01;&#xff5c;前所未有的Web开发探索之旅 第三章、SpringMVC控制器开发详解 3.1 核心要点 &#x1f4a1; 1. 接受客户端&#xff08;client&#xff09;请求参数[讲解] 2…

MySQL 临时数据空间不足导致SQL被killed 的问题与扩展

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;共1730人左右 1 2 3 4 5&#xff0…

【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、springboot分层架构、IDEA修改快捷键、vue代码风格

项目笔记为项目总结笔记,若有错误欢迎指出哟~ 【项目专栏】 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(1)spring boot项目搭建、vue项目搭建、微信小程序项目搭建 【java+vue+微信小程序项目】从零开始搭建——健身房管理平台(2)后端跨域、登录模块、sp…

自然语言处理 (NLP) 中的组合语义分析

埃弗顿戈梅德&#xff08;Everton Gomede&#xff09; 一、介绍 自然语言处理 &#xff08;NLP&#xff09; 中的组合语义分析是一个引人入胜且复杂的话题。为了充分理解它&#xff0c;将这个概念分解成它的基本组成部分是至关重要的&#xff1a;组合语义及其在NLP中的应用。组…

【开源】基于JAVA的超市账单管理系统

项目编号&#xff1a; S 032 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S032&#xff0c;文末获取源码。} 项目编号&#xff1a;S032&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…

EasyExcel写入多个sheet

直接上代码&#xff1a; public static void main(String[] args) {// 设置excel工作簿ExcelWriter excelWriter EasyExcel.write("F:\\excel\\a.xls").build();List<User> userList new ArrayList<>();userList.add(new User("lisi", "…

Redis缓存的使用

什么是缓存 缓存就是数据交换的缓冲区&#xff0c;是存储数据的临时地方&#xff0c;一般读写性能较高。 缓存的作用&#xff1a; 降低后端负载提高读写效率&#xff0c;降低响应时间 缓存的成本&#xff1a; 数据一致性成本代码维护成本运维成本 Redis特点 键值型数据库…

STM32DAC输出可调电压、三角波、正弦波

STM32DAC输出可调电压、三角波、正弦波 DAC简介输出可调电压输出正弦波输出三角波 本期内容我们将学习stm32DAC的原理和使用方法 DAC简介 DAC&#xff0c;全称&#xff1a;Digital-to-Analog Converter&#xff0c;指数字/模拟转换器。可以将数字量转换为模拟量进行输出&#…

深入了解Vue.js:构建现代、响应式的前端应用

文章目录 1. Vue.js简介1.1 安装Vue.js 2. Vue的核心概念2.1 数据驱动2.2 组件化2.3 生命周期钩子 3. Vue的特性3.1 响应式数据3.2 模板语法3.3 组件通信 4. 示例项目结语 &#x1f388;个人主页&#xff1a;程序员 小侯 &#x1f390;CSDN新晋作者 &#x1f389;欢迎 &#x1…

2023 如何下载最干净的 win10 win11 微软官方原版系统镜像(详细图文)

前言 不会吧不会吧&#xff0c;不会到现在还有人不会下载原版系统镜像吧 开始 win10官方下载工具下载地址&#xff1a;https://www.microsoft.com/zh-cn/software-download/windows10 win11官方下载工具下载地址&#xff1a;https://www.microsoft.com/zh-cn/software-downl…