计算字符串长度的三种方法(库函数 指针 )【详解】

这篇具有很好参考价值的文章主要介绍了计算字符串长度的三种方法(库函数 指针 )【详解】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

求字符串长度的一般原理

求字符串长度简单来说就是计算一个字符串(字符数组)中元素的个数即从数组头部计数,直到遇到字符串’\0’结束符为止,计数结果不包括’\0’.

方法一:strlen函数

函数原型

size_t strlen( const char *string );

使用方法

C语言中的库函数strlen,它包含于string.h中,因此我们需要在使用前添加头文件 ,具体用法如下:

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

strlen从数组头部计数,直到遇到字符串’\0’结束符为止,结果不包括’\0’

方法二:指针+整数

#include <stdio.h>

int my_strlen(char* str)
{
	int count = 0;
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char arr[] = "abcdef";
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}

计算字符串长度的三种方法(库函数 指针 )【详解】
思路:求字符串长度即统计’\0’之前的元素个数,函数中传过去的*str是arr数组中的第一个元素,但是它是’a’,不等于’\0’,因此count++,str+1在找第二个元素
计算字符串长度的三种方法(库函数 指针 )【详解】
因此用while循环,以此类推,直到找到’\0’停止计数,并将count值打印出来返回给len打印出来,计算字符串长度完成

方法三:指针-指针


#include <stdio.h>
int my_strlen(char* str)
{
	char* start = str;
	while (*str != '\0')
	{
		str++;
	}
	return str - start;
}

int main()
{
	char arr[] = "abcde";
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}

科普:指针减指针得到的是两个地址之间的元素个数
计算字符串长度的三种方法(库函数 指针 )【详解】
根据这个知识点,我们不难发现,我们只需要知道字符’a’的地址和’\0’的地址,相减便可得到字符串的长度
因此我们在函数中,用start记录起始元素的地址,用while循环使元素逐渐后移,直到遇见’\0’,此时的str便是’\0‘的地址
因此二者相减便是字符串的长度!

总结:

计算字符串的根本就是找到’\0’的位置,计算第一个元素到’\0’位置即可文章来源地址https://www.toymoban.com/news/detail-456565.html

到了这里,关于计算字符串长度的三种方法(库函数 指针 )【详解】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js 把字符串转成json对象的三种方法

    不管字符串是否含有转义字符,都能转换成 Json 对象 1, js自带的eval函数,其中需要添加小括号eval(\\\'(\\\'+str+\\\')\\\'); 2,new Function形式 3,全局的JSON对象 使用 这种方式限制稍微多一些,需严格遵守JSON规范,如属性都需用引号引起来,如下 name没有用引号引起来,使用JSON.parse所有浏览器

    2023年04月17日
    浏览(37)
  • 【C语言】三种方法实现字符串逆序函数

    题目如下(示例): 代码如下(示例): 代码如下(示例): 函数和main函数原理一样!这里不做过多的介绍! 代码如下(示例): 代码如下(示例): 注意: 这里的 tmp 和 len 的值可以通过调试来观察变化! 如下图! 这里是函数在一步一步调用,接下来是递归返回的阶

    2023年04月19日
    浏览(29)
  • C语言——字符串、打印字符串的三种方式

    字符串( character string )是一个或多个字符的序列,空字符( null character )\\0 标记字符串的结束 字符串以数组( array )存储,也就是以空字符(\\0)结尾的 char 类型数组 用 %s 转换说明来处理字符串的输入和输出 输入和输出必须给出字符串的首地址,可以 直接是字符串常量

    2024年02月11日
    浏览(43)
  • C/C++字符函数和字符串函数详解————长度受限制的字符串函数

    个人主页:点我进入主页 专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言         2.长度受限制的字符串函数 2.1strncpy函数 2.2strncat函数 2.3strncmp函数

    2024年02月08日
    浏览(31)
  • 计算字符串的长度几种方法 | 递归 | 指针减指针 | 计数器 | C语言 | 详解 | 期末考试必看!!!

    1,题目描述 2,分析题目 Ⅰ,题目中要求 除了函数的形参,函数中不能够使用多余的变量 (这是比较 苛刻 的要求)。 Ⅱ,根据此,很自然的想到需要使用 递归 来解决问题。 Ⅲ, 字符串的结束标志是\\\'\\0\\\',因此可以将 读取到\\\'\\0\\\' 作为结束条件 3,关于递归的基本知识 Ⅰ,递

    2024年02月03日
    浏览(38)
  • C语言:写一个函数,求字符串的长度,在main函数中输入字符串并输出其长度(指针)

    分析:    在程序中,定义一个函数 fix,该函数使用指针变量来访问字符串中的每个字符,并计算出字符串的长度。fix 函数的参数为指向 char 类型的指针变量 p,表示需要计算长度的字符串。   在主函数 main 中,定义一个大小为 20 的字符数组 a,用于存储输入的字符串。然

    2024年01月21日
    浏览(48)
  • C/C++字符函数和字符串函数模拟实现与详解————长度不受限制的字符串函数

    个人主页:点我进入主页 专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录   1.前言  2strlen函数   3.strcpy函数 4.strcat函数 5.strcmp函数           对于字符串

    2024年02月07日
    浏览(33)
  • 字符串(字节)长度计算

    字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。 一个字节(byte)8位(bit),十进制表示0~255。 两个字节16位,可表示十进制0~65535。 Unicode 做了一件事,就是给世界上所有字符都分配了一个唯一的数

    2024年02月05日
    浏览(30)
  • C++ 字符串长度计算

    C++常用的长度计算方法size()、sizeof() 、strlen()、length() size():计算长度,std::string类的成员函数 length():计算长度,std::string类的成员函数 sizeof():计算所占用空间的字节数,是运算符;在编译时计算,获得保证能容纳实现所建立的最大对象的字节大小,因此sizeof不能用来返回

    2024年02月11日
    浏览(49)
  • 判断字符串是否为回文的三种常用编程语言实现

    引言:回文是一种具有镜像对称性的字符串,即它从左到右读和从右到左读是相同的。回文可以在文学、语言学、数学、计算机科学等领域中得到广泛应用。在计算机科学中,判断一个字符串是否为回文是一项基本的算法挑战。在本文中,我们将介绍三种常见的编程语言中用

    2024年02月03日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包