c语言的字符数组strlen的详细使用

article/2025/10/19 11:07:14

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、字符数组中strlen的使用详解
  • 1、字符数组中strlen(arr+0)
  • 2、字符数组中strlen(*arr)和strlen(arr[1])
  • 3、字符数组中strlen(&arr)
  • 4、字符数组中strlen(&arr+1)
  • 5、字符数组中strlen(&arr[0]+1)

在这里插入图片描述


前言

大家好🤞,我是一名初学者,在这里我我来分享一下自己所学到的知识

我想大家对c语言中的sizeof和strlen并不陌生😸,那么就由我来给大家详细🧐的讲解一下关于在字符数组和字符串数组中的使用方法

希望自己分享的知识可以帮助到大家😉


👻👻👻开始上课!!!!!!!!!

一、字符数组中strlen的使用详解

代码如下(示例):

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(arr);//随机值//因为这里不知道'/0'在哪里,所以我们这里的长度时要直到遇到‘/0’才会结束。return 0;
}
这里的运行结果是什么呢????🧐
首先我们要对 strlen函数有一定的了解
那么strlen到底是干嘛的呢?
1.🎈strlen所作的仅仅是一个计数器的工作,
它从内存的某个位置,可以是字符串开头,中间某个位置,
甚至是某个不确定的内存区域开始扫描,
直到碰到第一个字符串结束'\0为止,然后返回计数器值,**长度不包含\0。**2🎈.strlen函数求的是字符串的实际长度,
它求得方法是从开始到遇到第一个\0,
如果你只定义了一个字符型数组但没有给它赋初值,
这个结果是不定的,它会从首地址一直找下去,**直到遇到\0停止。**

数组内存排布:
在这里插入图片描述

1、字符数组中strlen(arr+0)

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(arr+0);//随机值return 0;
}
这里的运行结果是什么呢????🧐
这里的结构还是随机值
因为**直到遇到\0停止。**

2、字符数组中strlen(*arr)和strlen(arr[1])

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(*arr)//报错了!!! a=97   97地址  报错   语法错误不可以这样写 return 0;
}

这里数组名arr 不就是首元素的地址吗 *arr不就是把数组名解引用了吗,所以我们在这里传过去的
就是字符‘a’ 字符的a,a的ASCII就是97,🤡也就是相当于把97放入了strlen(97)
🧐strlen(这里要的不适应是地址吗)我们现在放入97所以就会报错
😲你们可能是这样的表情吧 ,大家明白了吗??

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };srlen(arr[1])//报错  98作为地址是错误的return 0;
}

3、字符数组中strlen(&arr)

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(&arr)//随机值 return 0;
}
这里的运行结果是什么呢????🧐
因为传过去的是指针

4、字符数组中strlen(&arr+1)

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(&arr+1)//随机值-6return 0;
}

这里为什么是随机值-6呢???🎯
&arr+1:&arr表示整个数组的地址+1
这里用图片解释:
在这里插入图片描述

5、字符数组中strlen(&arr[0]+1)

#include <string.h>
int main()
{char arr[] = { 'a','b','c','d','f' };strlen(&arr[0]+1)//随机值-1return 0;
}

这里为什么又是随机值-1呢???😝😝
那么我们还是用图片来解释一下 ,这样可以使我们更能充分的理解
在这里插入图片描述
下课!!! 🎈🎈🎈


http://chatgpt.dhexx.cn/article/36IXRwtx.shtml

相关文章

C语言实现strlen的三种方法

目录 1.strlen介绍 strlen --- 求字符串长度 2.如何使用strlen库函数 3.三种方法实现strlen 计数器法&#xff1a; 递归法&#xff1a; 指针-指针法&#xff1a; 4.关于strlen返回值 1.strlen介绍 strlen --- 求字符串长度 size_t strlen (const char* str); 找到字符…

C语言:strlen函数

目录 一、strlen&#xff08;&#xff09;函数的简介二、strlen&#xff08;&#xff09;的三种实现方法2.1第一种方法&#xff08;直接&#xff09;2.2第二种方法&#xff08;递归&#xff09;2.3第三种方法&#xff08;指针-指针&#xff09; 三、总结 一、strlen&#xff08…

C语言学习之sizeof与strlen

1.二者的概念 1.sizeof sizeof是C语言中的一个关键字&#xff0c;sizeof(a)表示的是a所占内存空间的大小&#xff0c;单位是字节。在字符数组中会统计‘\0’所占空间。其返回类型为size_t类型&#xff0c;C99和C11提供%zd转换说明匹配sizeof的返回类型&#xff08;即&#xff0…

c语言strlen用法,如何使用c语言中的strlen()函数

c语言中strlen()函数的用法是&#xff1a;【strlen(const char *str)】。该函数用于计算字符串的长度&#xff0c;直到空结束字符&#xff0c;但不包括结束字符&#xff0c;并返回字符串的长度。 函数介绍&#xff1a; (推荐教程&#xff1a;c语言教程) strlen()函数用于计算字…

C语言中strlen和sizeof的区别

1.strlen是一个库函数使用时需要引用#include<string.h>这个头文件&#xff0c;而sizeof是一个运算符号&#xff1b; 2.strlen计算的是\0之前的字符个数&#xff0c;sizefo计算的是所占空间内存的大小&#xff0c;单位是字节&#xff1b; 3.strlen计算时不包含\0&#…

C语言的库函数:strlen的用法

首先&#xff0c;strlen使可以计算字符串的长度&#xff0c;且只能用于字符串&#xff0c;计算的是\0之前的字符个数。 因为strlen是库函数&#xff0c;所以其头文件是string.h #include<stdio.h> #include<string.h> int main() {char arr[]{"abcdef"…

C语言strlen函数详解

strlen函数详解 一.strlen函数简介1.函数原型2.注意事项 二.strlen函数模拟实现1.计数器方式2.递归实现3.指针-指针实现 一.strlen函数简介 1.函数原型 size_t strlen ( const char * str );2.注意事项 ①字符串以 ‘\0’ 作为结束标志&#xff0c;strlen函数返回的是在字符…

C语言:Strlen()函数你了解多少?

一、strlen&#xff08;&#xff09;函数的介绍及用法 C语言中strlen是一种函数&#xff0c;主要用于计算字符串的长度。 &#x1f6a9;strlen&#xff08;&#xff09;从字符串的开头位置依次往后面计数&#xff0c;直到遇到‘\0’停止&#xff0c;所计算的字符串大小为‘\0’…

【C语言】strlen()函数

目录 一、strlen&#xff08;&#xff09;函数的简介 二、strlen&#xff08;&#xff09;函数的具体使用 三、使用strlen函数的注意事项 四、实现strlen函数功能的三种方式 1.计数器的方式 2.递归的方式 3.指针减指针的方式 总结 一、strlen&#xff08;&#xff09;…

C语言strlen()函数

strlen()函数&#xff1a;该函数从第一个字符开始计算字符串中字符数&#xff0c;直到遇到空字符即\0为止&#xff0c;然后返回计算字符数的长度&#xff0c;包括\0。 以下是strlen()函数代码&#xff0c;如下&#xff1a; ##include <stdio.h> #include <string.h&…

jQuery属性概述

jQuery属性 1 操作元素属性1.1 读取属性1.2 修改属性1.3 删除属性 2 操作样式类2.1 添加类2.1 判断类2.3 移除类2.4 交替类 3 操作CSS3.1 操作CSS样式3.2 操作宽和高 4 操作页面内容4.1 操作HTML代码4.2 操作文本内容4.3 操作值 5 查找与筛选元素5.1 过滤&#xff08;Filtering…

jQuery四:获取、设置、移除属性;attr(“href“)、attr(“href“,“http://www.baidu.com“)、removeAttr(“href“);

attr()方法是用于设置标签的属性&#xff0c;比如src&#xff0c;href&#xff0c;title&#xff1b;&#xff08;这些更多的是元素的基本属性&#xff0c;HTML的属性&#xff09;&#xff1b; 目录 一&#xff1a;操作元素属性 &#xff08;1&#xff09;attr()方法&#x…

Rigidbody2D ( Simulated )

bool类型,设为false后则不会模拟刚体。

[ 游戏开发日记with Unity ] 首先,认识你自己,或者说Player吧。 有关于Rigidbody2D和Collider的一些使用知识

写在前面 这个系列&#xff08;坑&#xff09; 来自一个用Unity开发的2D横版射击游戏的开发过程&#xff0c;用来记录学习进度以及一些学习心得。和大家分享共勉&#xff0c;有错误的话请评论指出&#xff0c;我会积极回复。 那么&#xff0c;我们开始吧 Q.问题是什么&#xf…

rigidBodyTree是什么(附使用例子和代码)

目录 介绍将连杆加入刚体树DH参数添加机器人关节连杆修改刚体树模型设置刚体树动态特性外力作用导致关节的移动载入自带机器人模型并显示 介绍 rigidBodyTree是较新版本的MATLAB(小虎用的是2019b)自带的robotics相关工具箱里面的一个刚体树。它可以实现简单机器人刚体关节的连…

Unity中Rigidbody的属性 方法

RIgidbody组件 常用属性 Mass&#xff1a;质量 最小值0.00000001 最大值10000000000 Drag&#xff1a;阻力 最小值0 最大值无限 Angular Drag&#xff1a;角阻力 最小值0 最大值无限 Use Gravity&#xff1a;使用重力 is Kinematic&#xff1a;物理是否影响该物体&#x…

[Unity Mirror] Network Rigidbody

英文原文&#xff1a; https://mirror-networking.gitbook.io/docs/components/network-rigidbody Network Rigidbody目前被归类为“实验性”&#xff0c;因此请分享您发现的任何问题或错误&#xff0c;如果生产构建&#xff0c;请自担风险使用。 Network Rigidbody 组件通过网…

Unity Rigidbody实现爬坡功能

文章目录 &#x1f388; 简介&#x1f388; 实现原理&#x1f388; 实现代码 &#x1f388; 简介 人物移动功能的实现或许用到Character Controller组件或许用到Rigidbody刚体组件&#xff0c;前者可以直接实现在某些高地不平的地面上移动&#xff0c;而后者想要在具有一定角度…

UnityVR--组件2--Rigidbody--移动控制

移动的方式有transform.Translate&#xff08;&#xff09;、rigidbody.velocity&#xff08;&#xff09;、rigidbody.MovePosition&#xff08;&#xff09;等多种。本篇使用rigidbody的方式&#xff0c;并向着相机朝向的方向控制移动。也就是继上一篇“第三人称相机控制”&a…

第二十五章 Unity 刚体Rigidbody

在物理学中&#xff0c;静止和匀速直线运动是物体的平衡状态&#xff0c;如果给该物体施加某一个力的话&#xff0c;物体的平衡状态就会改变&#xff0c;当然这个真理的前提是理想状态。我们知道在现实世界中&#xff0c;由于重力和摩擦力的存在&#xff0c;任何一个物体都不可…