一、strlen

1.1 函数原型

strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。其原型如下所示:

size_t strlen(char const* str);
1.2 示列
char sArr[] = "ILOVEC";
/*用strlen()求长度, 运行结果为 6(因为不包括结束字符 null)*/
printf("sArr的长度=%d\n", strlen(sArr));
1.3 两个strlen(sArr) 的结果做减法总为整数
/*判断一*/
if(strlen(x)>= strlen(y))
{}
/*判断二*/
if(strlen(x)- strlen(y)>= 0)
{}

其中,判断表达式一没什么问题,程序也能够完全按照预想的那样工作;但判断表达式二的结果就不一样了,它将永远是真;
原因很简单,因为函数 strlen 的返回结果是 size_t 类型(即无符号整型),而 size_t 类型绝不可能是负的。因此,语句“if(strlen(x)-strlen(y)>=0)”将永远为真。

二、sizeof

关键字 sizeof 是一个单目运算符,而不是一个函数。与函数 strlen 不同,它的参数可以是数组、指针、类型、对象、函数等,如下面的示例代码所示:

char sArr[] = "ILOVEC";
/*用sizeof求长度, 运行结果为 7(因为它包括结束字符 null)*/
printf("sArr的长度=%d\n", sizeof(sArr));

C语言 strlen与sizeof的区别相关推荐

  1. c语言strlen()和sizeof()的区别

    sizeof(type a)输出结果是 type的长度. strlen()是不包括字符串末尾'\0'的长度. note: char str[20]="hello"; str 是ch ...

  2. 实例分析C语言中strlen和sizeof的区别

    C语言文章更新目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序的7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分 ...

  3. char[]:strlen和sizeof的区别

    C code: // char[]:strlen和sizeof的区别 #include <stdio.h> #include <string.h> int main(int a ...

  4. 【C语言】strlen和sizeof的区别

    strlen和sizeof没有什么关系!!! 1.strlen是求字符串长度的,只能针对字符串求长度 ,库函数 , 使用要引用头文件string.h 2.sizeof计算变量.数组.类型的大小,它的单 ...

  5. strlen 与 sizeof 的区别详解

    写函数的时候,经常要对数组和字符串以及指针进行初始化. strlen 是函数,sizeof 是运算符. strlen 测量的是字符的实际长度.以'\0' 结束. 而sizeof 测量的是字符的分配大小 ...

  6. C语言中的strlen与sizeof的区别

    sizeof与strlen是有着本质的区别,sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾.区别如下: (1) sizeof是一个C语言中的一个单目运算符,而 ...

  7. C语言中strlen和sizeof的区别

    sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,字符串以/0结尾. 各类型数据的存储空间如下:

  8. Strlen和Sizeof的区别

    Strlen是函数,复杂度是O(n)的 Sizeof是运算符,复杂度是常数的 Sizeof的值在声明的时候就已经确定了: 如图所示,char s[100]已经说明了sizeof(s)是100,strl ...

  9. C语言 strlen(str)和sizeof(arr)的区别

    C语言 strlen(str)和sizeof(arr)的区别 1. strlen() strlen(str):表示是运算符,而不是一个函数.sizeof返回的值表示的含义如下: 该函数实际完成的功能是 ...

最新文章

  1. shell脚本自动执行,top命令无输出
  2. 用 Python 可以实现侧脸转正脸?我也要试一下!
  3. 全自动驾驶“生死时速”,特斯拉收购计算机视觉创企DeepScale
  4. 使用phpMyAdmin时出现PHP 5.3+is required的解决方案
  5. 【Netty】Netty 入门案例分析 ( Netty 模型解析 | Netty 服务器端代码 | Netty 客户端代码 )
  6. DHCP的基本介绍以及在HC3上配置DHCP中继和DHCP snooping
  7. openssl qt 生成秘钥_关于openssl作的rsa生成密钥及加解密
  8. asterisk配置会议室meetme.conf
  9. java xml 序列化_java-序列化为XML时忽略父类
  10. 《北大学科》第一季:数学篇
  11. 如何在Java中使ArrayList只读?
  12. Magento 2.0 Alipay Cross-Border Mobile Payment Extension - Magento 2.0 支付宝跨境支付手机版...
  13. oracle判断字符串以什么开头_sql语句判断字符串以什么什么开头
  14. tp6导出Excel表格
  15. 使用linux内核仿真ZNS(zoned namespace SSD)
  16. AWS KMS加密和解密
  17. 360html怎么保存,360浏览器网页怎么保存电脑桌面上
  18. android camera 对焦大小,Android camera2对焦设置
  19. swagger屏蔽某些接口
  20. ecshopcron.php,ecshop商业模板 高仿小米商城源码,小米手机商城源代码模板价值百元...

热门文章

  1. 华硕本本U盘启动不了看这里
  2. App“照妖镜”:随时监控你的应用质量
  3. 科技赋能“听觉”,和乐电子QCY在环球消费电子展上释放更多未来
  4. PyQt完整入门教程
  5. Java学生成绩查询系统系统
  6. [Abp 源码分析]五、系统设置
  7. hadoop搭建常见错误及解决方案
  8. Redis之 Unable to connect to localhost:6379
  9. 在Java中实现两数相乘
  10. randperm随机函数