字符串操作函数

目录

一.strlen函数

二.strcpy函数

三.strcat函数

四.strcmp函数

五.strncpy函数 

六.strncat函数

七.strncmp 函数

八.strstr函数

九.strtok函数

十.strchr函数

十一.strrchr函数

十二.strpbrk函数

十三.strspn函数

十四.strcspn函数


一.strlen函数

size_t strlen( const char *string );

头文件:string.h

作用:用于计算字符串长度,但不包括 “ \0 ”。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "hello world!";
	printf("%zd", strlen(a));
	return 0;
}

运行结果如下所示:

注:参数所指向的字符串必须以“\0”结尾。

二.strcpy函数

char *strcpy( char *strDestination, const char *strSource );

用法:将指针 strSource 所指向的字符串复制到目标字符串中,即 strDestination 所指向的字符串            中。(包括 “ \0 ”)

返回值:复制后字符串首元素地址,即strDestination。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[13] = "abc";
	char b[] = "hello world!";
	strcpy(a, b);
	printf("%s", a);
	return 0;
}

运行结果如下:

注:目标字符串必须空间大小足够大,确保放得下源字符串。                                                                 源字符串必须以“ \0 ”结尾。                                                                                                                目标空间必须可修改。如不能被const修饰。

三.strcat函数

char *strcat( char *strDestination, const char *strSource );

用法:在目标字符串(strDestination)后面追加上另一个字符串(源字符串: strSource)。

返回值:返回拼接后字符串首元素的地址,即strDestination。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[13] = "hello ";
	char b[] = "world!";
	strcat(a, b);
	printf("%s", a);
	return 0;
}

运行结果如下所示:

注:目标字符串和源字符串都必须以 " \0 " 结尾。                                                                                     目标字符串空间必须足够大。                                                                                                             目标空间必须可修改。

四.strcmp函数

int strcmp( const char *string1, const char *string2 );

作用:是C语言中的字符串比较函数,用于比较两个字符串的大小。

比较原理:按照字符串元素顺序逐个比较,若两个字符相等,则继续比较下一个字符,反之则函                      数运行结束。

返回值:当string1 < string2 时,返回 -1。                                                                                                      当string1 = string2 时, 返回0。                                                                                                        当string1 > string2 时, 返回1。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "abc";
	char b[] = "aec";
	printf("%d", strcmp(a, b));
	return 0; 
}

运行结果如下所示:

注:字符串的比较是按照 ascii 码进行比较的,因此大小写字母的比较结果不同。                                    字符串均需以"\0"进行结尾。         

五.strncpy函数 

char *strncpy( char *strDest, const char *strSource, size_t count );               

作用:将 strSource 所指向的源字符串中 count 个字符拷贝到 strDest 所指向的字符串中。                      若 strSource 所指向的源字符串中字符数量不足 count 个,将会追加 0。     

返回值:返回结果字符串首元素的地址,即strDest。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[15] = "abc";
	char b[] = "hello world!";
	strncpy(a, b, sizeof(b));
	printf("%s", a);
	return 0;
}

运行结果如下所示:

注:目标字符串和源字符串中间不能有重叠部分,目标字符串空间必须足够大。

六.strncat函数

char *strncat( char *strDest, const char *strSource, size_t count );

用法:将源字符串(strSource所指向的字符串)中 count 个字符串附加在目标字符串(strDest所             指向的字符串)末尾。

返回值:返回目标字符串首元素地址,即strDest。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[15] = "hello ";
	char b[] = "world!";
	strncat(a, b, sizeof(b));
	printf("%s", a);
	return 0;
}

运行结果如下所示:

七.strncmp 函数

int strncmp( const char *string1, const char *string2, size_t count );

用法:按顺序一次比较字符串中字符大小,直到出现大小不同的字符或比较完 count 个字符。

返回值:当string1 < string2 时,返回 -1。                                                                                                      当string1 = string2 时, 返回0。                                                                                                        当string1 > string2 时, 返回1。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "abcd";
	char b[] = "aec";
	printf("%d", strncmp(a, b, sizeof(b)));
	return 0;
}

运行结果如下所示:

八.strstr函数

char *strstr( const char *string, const char *strCharSet );

用法:用于在 string 所指向的字符串中查找 strCharSet 所指向的字符串,并返回第一次出现时的             首元素地址。

返回值:当 string 所指向的字符串存在所查找的字符串时,返回第一次出现时的首元素地址,否                  则返回NULL。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "hello world!";
	printf("%s", strstr(a, "or"));
	return 0;
}

运行结果如下所示:

九.strtok函数

char *strtok( char *strToken, const char *strDelimit );

作用:将 strToken 指向的目标字符串的内容按照 strDelimit 所指向的字符串内容进行分割(实际               将与strDelimit所指向字符串元素相同的转化为"\0"),记录并返回分割后的字符串首元素地             址,当第二次调用该函数并且目标字符串地址为NULL时,将默认为上一个非NULL的地                   址,并返回下一个分割段。

返回值:返回原字符串单段首元素地址。

示例:

#include<stdio.h>
#include<string.h>

int main()
{
	char a[] = "hello world!";
	char b[] = "eo";
	char* c = strtok(a, b);
	while (c != NULL)
	{
		printf("%s\n", c);
		c = strtok(NULL, b);
	}
	return 0;
}

运行结果如下:

注:该函数会改变目标字符串的内容                                                                                                         目标字符串必须可修改                                                                                                                       strtok会自动忽略字符串中第一个字符                                                                                         

十.strchr函数

char *strchr( const char *string, int c );

用法:查找 string 所指向的字符串是否有ASCII码值等于c的字符。

返回值:查找到字符时返回字符的地址,未查找到字符时返回 NULL。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "helalo woarld!";
	char* c = strchr(a, 97);
	printf("%s\n", c);
	return 0;
}

运行结果如下所示:

注:strchr只能查找单个字符并且只能查找到第一个匹配项。                                                                    不支持多字节字符的查找。

十一.strrchr函数

char *strrchr( const char *string, int c );

用法:反向查找 string 所指向的字符串是否有ASCII码值等于c的字符。

返回值:查找到字符时返回字符的地址,未查找到字符时返回 NULL。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "helalo woarld!";
	char* c = strrchr(a, 97);
	printf("%s", c);
	return 0;
}

运行结果如下所示:

注:strrchr只能查找单个字符并且只能查找到第一个匹配项。                                                                  不支持多字节字符的查找。

十二.strpbrk函数

char *strpbrk( const char *string, const char *strCharSet );

用法:在 string 所指向的字符串中查找 strCharSet 所指向字符串中任意字符,并返回第一个符合             的字符地址。

返回值:查找到字符时返回字符的地址,未查找到字符时返回 NULL。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "hello world!";
	char b[] = "do";
	char* c = strpbrk(a, b);
	printf("%s", c);
	return 0;
}

运行结果如下:

十三.strspn函数

size_t strspn( const char *string, const char *strCharSet );

用法:从头开始查找 string 所指向的字符串中属于 strCharSet 的字符,并记录,直到遇到不属于             strCharSet 中的字符。

返回值:返回开头到遇到不属于 strCharSet 所指向字符串中字符时所经过的字符个数。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "hello world!";
	char b[] = "helowrd! ";
	printf("%zd", strspn(a, b));
	return 0;
}

运行结果如下所示:

十四.strcspn函数

size_t strcspn( const char *string, const char *strCharSet );

用法:从头开始查找 string 所指向的字符串中属于 strCharSet 的字符,并记录,直到遇到属于                 strCharSet 中的字符。

返回值:返回开头到第一个相同元素之间的字符个数。

示例:

#include<stdio.h>
#include<string.h>
int main()
{
	char a[] = "hello world!";
	char b[] = "oz";
	printf("%zd", strcspn(a, b));
	return 0;
}

运行记过如下:

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

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

相关文章

yaklang window安装 vscode运行得到“hello world”

资源来源&#xff1a;旅程伊始&#xff1a;Yak 语言环境安装与搭建环境 | Yak Program Language 安装yak语言非常简单&#xff0c;管理员权限打开命令行运行以下命令&#xff1a; powershell (new-object System.Net.WebClient).DownloadFile(https://yaklang.oss-cn-beijing…

“穿越时空的机械奇观:记里鼓车的历史与科技探秘“

在人类文明的发展历程中&#xff0c;科技的创新与进步不仅仅推动了社会的进步&#xff0c;也为我们留下了丰富的文化遗产。记里鼓车&#xff0c;作为一种古老的里程计量工具&#xff0c;其历史地位和技术成就在科技史上具有重要的意义。本文将详细介绍记里鼓车的起源、结构原理…

MySQL数据库设计作业 ——《网上书店系统》数据库设计实验报告

数据库设计作业——《网上书店系统》数据库设计 一、功能需求 普通用户&#xff1a;可以进行最基础的登陆操作&#xff0c;可浏览图书、按类别查询图书、查看 图书的详细信息&#xff0c;还可以注册成为会员。会员&#xff1a;需要填写详细信息&#xff08;真实姓名、性别、手…

SSM学习4:spring整合mybatis、spring整合Junit

spring整合mybatis 之前的内容是有service层&#xff08;业务实现层&#xff09;、dao层&#xff08;操作数据库&#xff09;&#xff0c;现在新添加一个domain&#xff08;与业务相关的实体类&#xff09; 依赖配置 pom.xml <?xml version"1.0" encoding&quo…

springboot+vue+mybatis企业保修系统+PPT+论文+讲解+售后

企业管理系统提供给用户一个企业信息管理的系统&#xff0c;最新的企业信息让用户及时了解企业管理动向,,还能通过交流区互动更方便。本系统采用了B/S体系的结构&#xff0c;使用了java技术以及MYSQL作为后台数据库进行开发。系统主要分为系统管理员、员工和主管三个部分&#…

【C语言】手撕结构体内存对齐

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 结构体对齐规则结构体大小计算 - 三步曲 结构体对齐规则 怎么计算结构体的内存大小。这就涉及到结构体内存对齐的问题。 结构体的第⼀个成员对⻬到…

项目实战--MySQL实现分词模糊匹配

一、需求描述 推广人员添加公司到系统时&#xff0c;直接填写公司简称&#xff0c;而公司全称可能之前已经被添加过&#xff0c;为防止添加重复的公司&#xff0c;所以管理员在针对公司信息审批之前&#xff0c;需要查看以往添加的公司信息里是否有相同公司。 二、方案 技术…

项目2:API Hunter 细节回顾 -1

一. 接口调用 对于开发者来说&#xff0c;接口的调用应当是方便快捷的&#xff0c;而且出于安全考虑&#xff0c;通常会选择在后端调用第三方 API&#xff0c;避免在前端暴露诸如密码的敏感信息。 若采用 HTTP 调用方式&#xff1a; HttpClientRestTemplate第三方库&#xf…

【JavaWeb】登录校验-会话技术(一)Cookie与Session

登录校验 实现登陆后才能访问后端系统页面&#xff0c;不登陆则跳转登陆页面进行登陆。 首先我们在宏观上先有一个认知&#xff1a; HTTP协议是无状态协议。即每一次请求都是独立的&#xff0c;下一次请求并不会携带上一次请求的数据。 因此当我们通过浏览器访问登录后&#…

py黑帽子学习笔记_burp

配置burp kali虚机默认装好了社区版burp和java&#xff0c;其他os需要手动装 burp是用java&#xff0c;还得下载一个jython包&#xff0c;供burp用 配apt国内源&#xff0c;然后apt install jython --download-only&#xff0c;会只下载包而不安装&#xff0c;下载的目录搜一…

【JVM-05】Java内存区域(运行时数据区)、对象创建过程、内存布局

【JVM-05】Java内存区域即运行时数据区、对象创建过程、内存布局 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什…

用随机森林算法进行的一次故障预测

本案例将带大家使用一份开源的S.M.A.R.T.数据集和机器学习中的随机森林算法&#xff0c;来训练一个硬盘故障预测模型&#xff0c;并测试效果。 实验目标 掌握使用机器学习方法训练模型的基本流程&#xff1b;掌握使用pandas做数据分析的基本方法&#xff1b;掌握使用scikit-l…

AWS的收费方式与计费项目

AWS&#xff08;亚马逊云服务&#xff09;是全球领先的云计算服务提供商&#xff0c;为各种规模和类型的企业提供了广泛的云计算服务。AWS的收费方式和计费项目是许多用户关心的问题&#xff0c;因为了解这些信息有助于企业更好地规划和控制成本。本文将介绍AWS的收费方式和常见…

MobileVitv1替换yolov8主干网络

一、原理介绍 MobileViT模型是为移动设备设计的轻量级、通用目的视觉变换器。它融合了卷积神经网络&#xff08;CNN&#xff09;和视觉变换器&#xff08;ViT&#xff09;的优势&#xff0c;旨在在保持高效性能的同时减少模型参数和降低延迟。以下是关于MobileViT模型的主要原理…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…

电脑提示你的msvcr100.dll丢失要如何解决?一键修复msvcr100.dll的解决方法

电脑提示你的msvcr100.dll丢失要如何解决&#xff1f;首先我们就要了解msvcr100.dll这个文件&#xff0c;了解前因后果&#xff0c;这样我们才能知道使用什么方法去修复它。今天主要就是来给大家详细的讲解一下msvcr100.dll文件&#xff0c;并且教各种的修复方法&#xff0c;每…

excel表格如何换行,这几个操作方法要收藏好

Excel表格作为一款强大的数据处理工具&#xff0c;在日常工作和生活中被广泛应用。当需要在单元格内显示较长的文本内容或使数据更加清晰易读时&#xff0c;我们需要掌握一些换行技巧。下面将介绍几种常用的Excel换行方法&#xff1a; 一、使用快捷键换行 1、首先&#xff0c;…

介绍一些好玩且实用的开源的AI工具

介绍一些好玩且实用的开源的AI工具 随着人工智能技术的迅猛发展&#xff0c;开源社区涌现出了许多关于AI的项目&#xff0c;这些项目不仅展示了技术的创新力&#xff0c;也为开发者提供了丰富的工具和资源。本文将介绍几个既有趣又实用的开源人工智能工具&#xff0c;它们不仅…

前端Web开发HTML5+CSS3+移动web视频教程 Day4 CSS 第2天

P44 - P 四个知识点&#xff1a; 复合选择器 CSS特性 背景属性 显示模式 复合选择器 复合选择器仍然是选择器&#xff0c;只要是选择器&#xff0c;作用就是找标签。复合选择器就是把基础选择器进行组合使用。组合了之后就可以在大量的标签里面更快更精准地找标签了。找…

轻度图像处理工具,匹敌photoshop

一、简介 1、一款功能强大的在线图片编辑工具,用户可以将其安装为渐进式网页应用(PWA)。它提供了与 Photoshop 相似的核心功能,能够满足大多数图像编辑需求,非常适合那些不愿或无法安装 Photoshop 的用户。即使使用免费版本,用户也能享受所有功能,是轻度图像处理的理想选…