【C语言】求字符串长度,三种方法(库函数,指针运算)简单易懂!

news2024/11/15 11:09:09

目录

一,strlen函数

1,strlen函数

2,strlen函数使用

 二,getchar()函数

1,getchar函数

2,代码

 三,指针运算

代码:

四,小结

一,strlen函数

1,strlen函数

strlen函数:计算的是字符串str的长度,从字符的首地址开始遍历,以 '\0' 为结束标志,然后将计算的长度返回,计算的长度并不包含'\0'。

size_t  strlen (const char* str);

结论:

函数的参数为------const char* str:字符指针

返回值的类型------size_t:无符号整数(即:unsigned int)

2,strlen函数使用

使用函数时要用头文件

#include <string.h>

即:

#include <stdio.h>
#include <string.h>
int main()
{
	char arr[] = "abcdefg";
	int num = strlen(arr);
	printf("长度为:%d\n",num);
	return 0;
}

运行结果:

 二,getchar()函数

1,getchar函数

函数原型:

int getchar ( void );

功能: 

从 stdin 中获取字符。

注:stdin 是指标准输入,通常就是我们日常使用的键盘

当用getchar进行输入时,如果输入的第一个字符为有效字符(即输入是文件结束符EOF,Windows下为组合键Ctrl+Z,Unix/Linux下为组合键Ctrl+D),那么只有当最后一个输入字符为换行符´/n´(也可以是文件结束符EOF,EOF将在后面讨论)时,getchar才会停止执行,整个程序将会往下执行

2,代码

 

#include <stdio.h>
int main()
{
	int a;
	int m = 0;
	while (a = getchar() != '\n')
	{
		m++;
	}
	printf("%d\n", m);
	return 0;
}

运行结果:

 三,指针运算

都知道:

指针+整数=指针

那么反过来:

指针-指针=整数(两个指针之间相差的个数)

代码:

#include <stdio.h>

int len(char* s)
{
	char* p = s;
	while (*p != '\0')
		p++;
	return p - s;
}
int main()
{
	printf("长度为:%d\n", len("abcdef"));
	return 0;
}

运行结果: 

四,小结

以上就是关于求字符串的内容了,具体还需宝子们去实践,如果觉得该博客对你有用的话,希望一键三连,点个关注不迷路,谢谢支持! 

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

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

相关文章

ATA-2168高压放大器用途有哪些方面

高压放大器是一种电子设备&#xff0c;用于将低电压信号放大为较高电压信号。它在各种应用领域中都具有重要作用。下面西安安泰Aigtek将详细探讨高压放大器的多重应用方面&#xff0c;以及它们在科学、医疗、工业和通信等领域中的关键作用。 一、科学研究 1.1物理学实验 高压放…

精品基于Uniapp+ssm英语学习交流平台小程序打卡计划备忘录

《[含文档PPT源码等]精品微信小程序基于Uniappssm英语学习交流平台小程序》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;ssm 安卓框…

「璞华精选」品牌展区成为亮点,引领海外优质生活新潮流!

展会概况 3月07-09日&#xff0c;CCF 2023上海春季百货展在上海新国际博览中心圆满收官。以“聚焦品牌引流行业”为定位目标的CCF上海国际日用百货&#xff08;春季&#xff09;博览会&#xff0c;立足上海&#xff0c;辐射全球商贸&#xff0c;链接行业市场全局&#xff0c;赋…

备战蓝桥杯---牛客寒假基础训练营补题1

1.第二类斯特林数&#xff1a; 2^n-1就是n个1的二进制&#xff0c;因为每一个&为0&#xff0c;所以我们可以把问题等价于n个1&#xff08;不同的球&#xff09;的串分配给m个非空的盒子&#xff0c;求方案数&#xff0c;这就转化成了第二类斯特林数。 我们令s(n,m)表示n个…

安装Docker的过程?

Docker Desktop概述 Docker Desktop是适用于Mac、Linux或Windows环境的一键安装应用程序&#xff0c;允许您构建、共享和运行容器化应用程序和微服务。 它提供了一个简单的GUI&#xff08;图形用户界面&#xff09;&#xff0c;允许您直接从机器管理容器、应用程序和图像。您可…

png和jpg哪个清晰?它们之间怎么互相转换?

在数字图像处理领域&#xff0c;PNG和JPG是两种备受欢迎的图像格式。这两种格式各自拥有独特的特点&#xff0c;而对于许多用户而言&#xff0c;其中一个关键的关注点就是图像的清晰度。png和jpg哪个清晰&#xff1f;此外&#xff0c;如果需要在它们之间进行转换&#xff0c;我…

“金航标,连接世界”

金航标kinghelm宋仕强先生说&#xff0c;“金航标&#xff0c;连接世界”。连接器的作用是为两个电路子系统提供一个可分离的界面&#xff0c;一方面使得零部件或子系统的维护或升级不必修改整个系统&#xff1b;另一方面提高了零部件的便携性、外围设备的拓展能力&#xff0c;…

使用虚拟机安装CentOS7操作系统并部署数据库

1 安装操作系统 最初下载的系统镜像为&#xff1a;CentOS-7-x86_64-Everything-2207-02.iso&#xff0c;安装时总是提示&#xff1a;“客户机操作系统已禁用cpu请关闭或重置虚拟机”&#xff0c;查找了很多资料都无法解决&#xff0c;最终更换系统镜像为&#xff1a;CentOS-7-…

2024/3/14打卡(14届蓝桥杯)——差分

标准差分模板 差分——前缀和的逆运算&#xff08;一维二维&#xff09;-CSDN博客 题目 小蓝拥有 nn 大小的棋盘&#xff0c;一开始棋盘上全都是白子。 小蓝进行了 m 次操作&#xff0c;每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色&#xff0…

jar运行报错Unable to read meta-data for class

目录 一、场景描述 二、解决办法 1&#xff09;情况一 2&#xff09;情况二 贴一下部署报错堆栈信息&#xff1a; java.lang.IllegalStateException: Unable to read meta-data for class com.zhh.zhhd.biz.config.Test1Configat org.springframework.boot.autoconfigure.…

goland设置保存文件时不将4个空格转为TAB

goland设置保存文件时不将4个空格转为TAB 版本&#xff1a;GoLand 2022.3 设置路径&#xff1a; Settings -> Editor -> Code Style -> Go -> Run gofmt图示&#xff1a;

无缝集成 MongoDB Relational Migrator,Tapdata 提供关系型到 MongoDB 实时迁移优化方案

在去年的 MongoDB 用户大会纽约站上&#xff0c;MongoDB 正式宣布全面推出新工具 MongoDB Relational Migrator&#xff08;MongoDB RM&#xff09;&#xff0c;用以简化应用程序迁移和转换——即从传统关系型数据模型到现代的文档数据模型&#xff0c;助力组织快速提升运营效率…

opencv dnn模块 示例(25) 目标检测 object_detection 之 yolov9

文章目录 1、YOLOv9 介绍2、测试2.1、官方Python测试2.1.1、正确的脚本2.2、Opencv dnn测试2.2.1、导出onnx模型2.2.2、c测试代码 2.3、测试统计 3、自定义数据及训练3.1、准备工作3.2、训练3.3、模型重参数化 1、YOLOv9 介绍 YOLOv9 是 YOLOv7 研究团队推出的最新目标检测网络…

手撕快速排序

定义 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法. 其基本思想为:任取待排序的某个元素作为基准值,按照该排序码将待排序集合分割成两个子序列, 左子序列中所有元素均小于基准值,右子序列均大于基准值,然后左右子序列重复该过程,知道所有元素都有序为止. (核心…

投后管理系统的功能模块

投后管理系统的技术难点可能包括以下几个方面&#xff0c;这些技术难点需要综合考虑&#xff0c;并结合具体的业务需求和技术实现&#xff0c;才能构建出高效、安全、稳定的投后管理系统。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作…

【Python】成功解决NameError: name ‘sns‘ is not defined

【Python】成功解决NameError: name ‘sns’ is not defined &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您…

基于Java (spring-boot)的毕业作品管理系统

一、项目介绍 管理员管理设计题目&#xff0c;投票记录&#xff0c;选题信息以及公告。 教师对设计题目进行投票&#xff0c;审核并管理用户选题信息。 用户选择设计题目&#xff0c;查看选题审核状态&#xff0c;管理选题信息。 二、作品包含 三、项目技术 后端语言&#xff1…

一体式以电折水智能终端:化繁为简,智能八合一

一体式以电折水智能终端通过高度集成化设计&#xff0c;巧妙融合了空气开关、开关电源、隔离变压器、接触器、智能电表、RTU、4G通信模块、定位模块等八大核心功能&#xff0c;不仅展现了经济高效和智能运维的双重优势&#xff0c;更以其超强的安全防护能力确保了使用的高度安全…

maven打包把所有依赖的jar copy到一个文件夹

在maven项目中&#xff0c;是使用依赖坐标来引入jar包&#xff0c;在引入jar包的时候&#xff0c;maven也会默默的帮助我们导入这个jar包所依赖的jar包。 但是当我们打包项目使用jar包运行的时候&#xff0c;往往会出现缺少jar的情况&#xff1a; 如果我们一个一个添加缺少的…

对比学习(Contrastive Learning)和孪生网络(Siamese Network)的区别!

对比学习&#xff08;Contrastive Learning&#xff09;和孪生网络&#xff08;Siamese Network&#xff09;是两种常见的无监督学习方法&#xff0c;它们有着不同的原理和应用场景。 原理与目标&#xff1a; 对比学习旨在通过最小化相似样本对之间的距离&#xff0c;最大化不相…