首先,strlen是函数,sizeof是运算操作符,二者得到的结果类型为size_t,即unsigned int类型。大部分编译程序在编译的时候就把sizeof计算过了,而strlen的结果要在运行的时候才计算出来。

对于以下语句:

char *str1 = "asdfgh";
char str2[] = "asdfgh";
char str3[8] = {'a', 's', 'd'};
char str4[] = "as\0df";

执行结果是:

sizeof(str1) = 4;  strlen(str1) = 6;
sizeof(str2) = 7;  strlen(str2) = 6;
sizeof(str3) = 8;  strlen(str3) = 3;
sizeof(str4) = 6;  strlen(str4) = 2;

str1是字符指针变量,sizeof获得的是该指针所占的地址空间,32位操作系统对应4字节,所以结果是4;strlen返回的是该字符串的长度,遇到\0结束,\0本身不计算在内,故结果是6。

str2是字符数组,大小由字符串常量"asdfgh"确定,sizeof获得该数组所占内存空间大小,包括字符串结尾的\0,所以结果为7;strlen同理返回6。

str3也是字符数组,但大小确定为8,故sizeof得到的结果是8;strlen统计\0之前所有字符的个数,即为3。

str4是常量字符数组,sizeof得到字符总数即6;strlen计算至\0结束,因此返回2。

总结一句就是sizeof计算的是变量的大小,strlen计算的是字符串长度,前者不受字符\0影响,后者以\0作为长度判断依据。

strlen和sizeof求字符串长度相关推荐

  1. strlen()和sizeof()求字符串长度

    我们在编写C语言程序时,很多时候都需要求字符串的长度,这时候我们就会想到使用strlen()或者sizeof(),那么它们两者的使用有什么区别呢?在使用的时候需要注意些什么呢? sizeof()是一个 ...

  2. strlen 和 sizeof 计算字符串长度的区别

    两者区别 sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned int类型.该类型保证能容纳实现所建立的最大对象的字节大小. sizeof是运算符(C++ 关键字) ...

  3. strlen、sizeof与size()求字符串长度的区别

    strlen.sizeof与size()求字符串长度的区别 cout<<strlen("123")<<endl; //返回 3 cout<<si ...

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

    区分sizeof().size().strlen()以及length()以及如何使用 一.区分sizeof()和strlen() 首先,sizeof()[操作数所占空间的字节数大小]是一种c中的基本运 ...

  5. C语言-求字符串长度-strlen()与sizeof()

    需要在代码头部加上标准库<string.h> 代码示例 #include <string.h>char s1[20] = "hello world"; ch ...

  6. 【C语言】模拟实现库函数 strcpy(复制字符串内容) 与 strlen(求字符串长度)

    前言:对于库函数的使用,我们不仅要会使用方法,更要知晓使用原理,而知晓使用原理最好的方法就是模拟相应库函数的使用. 今天我们就来模拟 strcpy(复制字符串内容) 与 strlen(求字符串长度)这 ...

  7. c语言中用于获取字符串长度的函数是,C语言中求字符串长度的函数的几种实现方法...

    C语言中求字符串长度的函数的几种实现方法 1.最常用的方法是创建一个计数器,判断是否遇到'\0',不是'\0'指针就往后加一. int my_strlen(const char *str) { ass ...

  8. Bailian2681 求字符串长度【字符串】

    求字符串长度 总时间限制: 1000ms 内存限制: 65536kB 描述 求一个长度不大于100的字符串的长度,要求不使用strlen方法,并且使用到字符指针. 输入 输出 字符串的长度. 样例输入 ...

  9. C语言用指针求字符串长度

    #include<stdio.h> //指针求字符串长度 int main() {char ch[] = "bit";int count = 0;/*int sz = ...

最新文章

  1. R语言构建决策树(decision trees)模型并进行调优和解释
  2. H5学习系列之Communication API
  3. 小程序中,iOS设备获取蓝牙设备的Mac地址
  4. Name与x:Name的关系--转载
  5. PHP之PHP文件引用详解
  6. VTK:图片之ImageShiftScale
  7. uni-app 组件传值
  8. php 执行 javascript,Bash/PHP/Javascript:如何运行输出javascript的php文件,并执行该javascript?...
  9. 关于win7系统中所有exe文件都被以word方式打开的解决方法
  10. Cognos 优化-大数据量的报表
  11. Hbase 详细介绍以及简单的Hbase命令操作(入门必备)
  12. SEM实验室常见仪器计量问题详解及仪器标准大全附
  13. 安卓手机虚拟键盘和position:fixed问题
  14. Macos中的Mercurial GUI工具Murky试用
  15. 5G凭什么比4G快那么多?
  16. 华为云数据库DDS产品深度赋能
  17. 51单片机之智能小车(避障、跟随、循迹)
  18. 初探串口输出六轴陀螺仪
  19. W phase 学习
  20. 四年级经典奥数题及答案解析

热门文章

  1. Java用Filter制作登录限制-踢下线防踢等
  2. 列举几个常用的linux命令以及说明?
  3. 如何快速确定男生对你是否真心?
  4. 五个有趣实用工具网站-搜嗖工具箱
  5. Java:关于 ThreadLocal 的知识来了!
  6. last 命令 – 显示用户历史登录情况
  7. 移动端 change 事件 js 设置 inut value 时不触发
  8. 诊所要使用微信预约系统,需准备哪些资料?
  9. (转)开发者常犯的十大加密错误
  10. php表白情话,情商高的聊天语句900句 表白情话最暖心一段话