C++求字符串长度————sizeof()、size()、strlen()以及length()详解

这篇具有很好参考价值的文章主要介绍了C++求字符串长度————sizeof()、size()、strlen()以及length()详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区分sizeof()、size()、strlen()以及length()以及如何使用

一、区分sizeof()和strlen()

首先,sizeof()【操作数所占空间的字节数大小】是一种c中的基本运算符。(是操作符,并不是函数)可以以类型、指针、数组和函数等作为参数。

它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此 sizeof() 不能用来返回动态分配的内存空间的大小

char str[30];
gets(str);      //输入str
cout<<sizeof(str)<<endl;

这里,如果我输入“Hello”,那么输出的结果会是什么呢?5?还是6?
没错,输出的结果是30,因为sizeof() 在该段程序中的作用是计算字符数组str所占空间字节数的大小,而字符数组str在创建时,系统自动给他分配了30个空间字节,所以无论输入什么(前提是不超过字符数组的范围),输出结果都会是30。(这一点也侧面说明了sizeof()其值在编译时即计算好了

而相比较于sizeof()strlen() 是一种函数,用于计算字符串的长度,(只能计算字符串),‘\0’作为终止符,返回的长度大小不包括’\0’,并且 strlen 的结果是运行的时候才出来(不是编译期求值)

char str[30];
gets(str);
cout<<strlen(str)<<endl;

这里,我们输入“Hello”,那么输出的结果就会是5,即字符数组str的长度。

  • strlen函数求得的字符串长度是从字符串第一个元素到第一个’\0’之间元素的个数
  • sizeof求得的结果是存储该字符串的变量占用的空间大小,因而一定会包括’\0’.若’\0’后还有空余的空间,也会包含到结果里面

二、size()函数以及length()函数

C++中,在获取字符串长度时,size()函数与length()函数作用相同。

string str;
cin>>str;
cout<<str.size()<<endl;
cout<<str.length()<<endl;

这里,我们同样还是输入字符串“Hello”,两个函数结果都为5。

总结:文章来源地址https://www.toymoban.com/news/detail-780913.html

  1. sizeof() 可以以类型、指针、数组和函数等作为参数,其值在编译时计算,用于获取操作数所占空间的字节数大小。
  2. strlen()函数其参数只能为char*(字符型指针),所以在计算字符数组(char str[ ])时,一般用strlen()函数(也只能用于计算字符数组了)。
  3. size()函数以及length()函数都用于计算字符串(string)长度,不能用char*作为参数。除此之外,size()函数还可以获取vector类型的长度。

到了这里,关于C++求字符串长度————sizeof()、size()、strlen()以及length()详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【C++ OJ练习】5.字符串最后一个单词的长度

    字符串最后一个单词的长度_牛客题霸_牛客网 倒着找第一个空格的下标 用下标之间的差来计算  【C++ OJ练习】5.字符串最后一个单词的长度 完

    2024年02月13日
    浏览(63)
  • C++中求string类型字符串长度的三种方法

    length()函数是string的内置成员方,用于返回string类型字符串的实际长度。 length()函数声明: // 返回 string 长度,单位字节 size_t length() const noexcept; 示例1: size()函数与length()一样,没有本质区别。string类刚开始只有length()函数,延续了C语言的风格。引入STL之后,为了兼容又加入

    2024年02月07日
    浏览(65)
  • C语言 strlen、length、size、sizeof的区别

    strlen 是 C 语言中的函数,用于计算字符串的长度(不包括字符串末尾的\\\'\\0\\\')。 仅适用于以 null 字符结尾的字符串,即 C-style 字符串。 返回值类型为 size_t 。 length 和 size 都是 C++ 中 string 类型的成员函数,用于返回字符串的长度。 可以适用于任何字符串类型,包括 std::strin

    2024年02月06日
    浏览(45)
  • 【C++初阶】String在OJ中的使用(一):仅仅反转字母、字符串中的第一个唯一字母、字符串最后一个单词的长度、验证回文串、字符串相加

    前言: 🎯个人博客:Dream_Chaser 🎈博客专栏:C++ 📚本篇内容:仅仅反转字母、字符串中的第一个唯一字母、字符串最后一个单词的长度、验证回文串、字符串相加 目录 917.仅仅反转字母  题目描述: 387.字符串中的第一个唯一字符 题目描述: HJ1 字符串最后一个单词的长度

    2024年04月09日
    浏览(108)
  • 【我爱C语言】详解字符函数isdigit和字符串转换函数(atoi和snprintf实现互相转换字符串)&&三种strlen模拟实现

    🔍个人主页 : @啊森要自信的主页 ✏️ 真正相信奇迹的家伙,本身和奇迹一样了不起啊! 欢迎大家关注🔍点赞👍收藏⭐️留言📝希望看完我的文章对你有小小的帮助,如有错误,可以指出,让我们一起探讨学习交流,一起加油鸭。 本小节我们将学习字符分类函数,字符

    2024年02月04日
    浏览(55)
  • 【华为OD机考 统一考试机试C卷】构成指定长度字符串的个数( C++ Java JavaScript python)

    2023年11月份,华为官方已经将 华为OD机考:OD统一考试(A卷 / B卷)切换到 OD统一考试(C卷)和 OD统一考试(D卷) 。 真题目录:华为OD机考机试 真题目录(C卷 + D卷 + B卷 + A卷) + 考点说明 专栏:2023华为OD机试( B卷+C卷+D卷)(C++JavaJSPy) 华为OD面试真题精选:华为OD面试真题精

    2024年02月05日
    浏览(53)
  • c语言练习41:深入理解字符串函数strlen strcpy strcat

    模拟实现:”strlen   strcpy   strcat strlen   strcat:

    2024年02月09日
    浏览(51)
  • 华为OD机试统一考试D卷C卷 - 最长子字符串的长度(二)(C++ Java JavaScript Python C语言)

    真题目录:华为OD机考机试 真题目录( D卷 +C卷 + B卷 + A卷) + 考点说明 在线OJ:点击立即刷题,模拟真实机考环境 华为OD面试真题精选:华为OD面试真题精选 给你一个字符串 s,字符串s首尾相连成一个环形 ,请你在环中找出’l’、‘o’、‘x’ 字符都恰好出现了偶数次最长

    2024年04月25日
    浏览(41)
  • Linux中获取字符串长度与获取子字符串

    一、  获取字符串长度 #!/bin/bash string = \\\"jobs\\\" echo   ${string}      # 输出结果: jobs echo   ${#string}     # 输出结果: 4 二、 提取子字符串 以下实例从字符串第 2  个字符开始截取 4  个字符: #!/bin/bash str = \\\"敢于亮剑决不后退\\\" echo   ${str:2:2}      # 输出结果为: 亮剑 ​​​​​

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

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

    2024年02月05日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包