文章目录

  • 一、strlen 与 sizeof 函数
  • 二、计算 字符串长度 与 内存块大小

一、strlen 与 sizeof 函数


strlen() 函数的作用是获取字符串大小 , 其原理是 从 内存某个首地址 开始计数 , 知道碰到 '\0' 字符结束 , 计算字符串长度 , 其中 计数中 不包含 '\0' 字符 ;

函数原型如下 :

#include <string.h>
size_t __cdecl strlen(const char *_Str);

sizeof 函数参考 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 ) 一、sizeof 函数 博客章节 ;

该函数的作用是 计算 内存块 的大小 ;

二、计算 字符串长度 与 内存块大小


使用 字符串 初始化 字符数组 , 字符串 “abc” 隐含 ‘\0’ 符号 , 字符长度实际上是 4 字节 ;

char str[] = "abc";

调用 strlen 函数得到 字符串长度是 3 字节 , 其计算长度时 , 不包括 ‘\0’ 字符 ;

int len_str = strlen(str);

调用 sizeof 函数得到 数组长度 是 4 字节 , 此处计算的是内存块的大小 , 数组是数据类型 , 其本质是 固定大小内存块 别名 ;

int len_array = sizeof(str);

代码示例 :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>/** 函数入口*/
int main(int argc, char **args)
{// 不指定大小// 使用 字符串 初始化 字符数组// 字符串 "abc" 隐含 '\0' 符号// 字符长度实际上是 4 字节char str[] = "abc";// 调用 strlen 函数求字符串长度是 3 字节// 其计算长度时 , 不包括 '\0' 字符int len_str = strlen(str);// 调用 sizeof 函数求数组长度 是 4 字节// 此处计算的是内存块的大小// 数组是数据类型 , 其本质是 固定大小内存块 别名int len_array = sizeof(str);// 打印上述 字符串printf("str = %s, len_str = %d, len_array = %d\n",str, len_str, len_array);system("pause");return 0;
}

执行结果 :

str = abc, len_str = 3, len_array = 4

【C 语言】字符串操作 ( strlen 与 sizeof 函数 | 计算 字符串长度 与 内存块大小 )相关推荐

  1. R语言str_length函数计算字符串的长度

    R语言str_length函数计算字符串的长度 目录 R语言str_length函数计算字符串的长度 #导入包和库 #仿真数据

  2. R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵、并使用summary函数基于混淆矩阵输出分类模型评估的其它详细指标(kappa、npv等13个)

    R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵(confusion matrix).并使用summary函数基于混淆矩阵输出分类模型评估的其它详细 ...

  3. R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(样本个数、均值、标准差、中位数、剔除异常均值、最小最大值、数据范围极差、偏度、峰度、均值标准差等)

    R语言使用psych包的describeBy函数计算不同分组(group)的描述性统计值(Summary statistics by group using describe.by() in the  ...

  4. R语言使用caret包的confusionMatrix函数计算混淆矩阵、使用编写的自定义函数可视化混淆矩阵(confusion matrix)

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.使用编写的自定义函数可视化混淆矩阵(confusion matrix) 目录

  5. R语言使用tidyquant包的tq_transmute函数计算持有某只股票的天、月、周收益率、ggplot2使用条形图(bar plot)可视化股票年收益率数据使用不同的色彩表征正收益率和负收益率

    R语言使用tidyquant包的tq_transmute函数计算持有某只股票的天.月.周收益率.ggplot2使用条形图(bar plot)可视化股票年收益率数据使用不同的色彩表征正收益率和负收益率( ...

  6. R语言使用epiDisplay包的summ函数计算向量数据在不同分组下的描述性统计汇总信息并可视化有序点图(名称、有效值个数、均值、中位数、标准差、最大值、最小值)

    R语言使用epiDisplay包的summ函数计算向量数据在不同分组下的描述性统计汇总信息并可视化有序点图(名称.有效值个数.均值.中位数.标准差.最大值.最小值) 目录

  7. R语言使用vcd包的assocstats函数计算两个分类变量的相关性的强弱、计算列联表的Phi系数、列联系数和Cramer’s V系数

    R语言使用vcd包的assocstats函数计算两个分类变量的相关性的强弱.计算列联表的Phi系数.列联系数和Cramer's V系数 目录

  8. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.基于混淆矩阵的信息手动编写函数计算accuray指标 目录

  9. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算Specificity、特异度指标

    R语言使用caret包的confusionMatrix函数计算混淆矩阵.基于混淆矩阵的信息手动编写函数计算Specificity指标 目录

最新文章

  1. matlab 傅里叶变换_Matlab与傅里叶变换
  2. 原生JS实现异步图片上传(预览)
  3. ZK的实际应用:MVVM –以编程方式更新视图
  4. 【信号】信号集、sigprocmask、sigpending
  5. 测试两个主机之间的连通性_借助网络测试神器极速解决网络故障
  6. 4999元起!iQOO 9 Pro赛道版上架:迄今为止成本最高手机后盖
  7. 字典:python的基础数据类型
  8. GJB六性设计---环境适应性实验
  9. python实现机器学习算法——K均值聚类算法
  10. 前端项目运行以后端口不是常见的8080等端口,端口数很大,不在配置的端口跑项目
  11. Ubuntu 图形桌面与命令行界面 切换快捷键
  12. 触摸开关模块,TTP223
  13. 企业组织结构中的几种关系
  14. 分析网络钓鱼的原理及防御措施
  15. workbench 左侧导航栏消失解决方案
  16. Android Google Maps V2之动态Polyline
  17. 东京奥运会能如期举办吗?带你用数据看120年奥运变迁史
  18. 2016 期末兼年终总结
  19. app式成语_成语大全四字成语下载-成语大全appv2.2.2 安卓版-腾牛安卓网
  20. 用matlab画单位冲激序列,实验一 基于Matlab的数字信号处理基本操作.doc

热门文章

  1. 苹果风格:分享一组免费的自定义 MacOS 图标
  2. Docker在Linux上运行NetCore系列(一)配置运行DotNetCore控制台
  3. nginx 卸载后重新安装/etc/nginx配置文件没了,cannot open /etc/nginx/nginx.conf (No such file or directory)...
  4. Eclipse反编译插件安装
  5. Gradle 修改 Maven 仓库地址(阿里镜像)
  6. UVa 11100 旅行2007
  7. .NET基础 (05)内存管理和垃圾回收
  8. C++ 画星号图形——空心矩形(核心代码记录)
  9. Android 之 Shape (圆角输入框)
  10. 【转】webgame前台开发总结--虽然是10年的文章,但是也有参考价值