文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言中的strlen()和sizeof()怎么使用

2023-07-05 09:25

关注

这篇文章主要介绍“C语言中的strlen()和sizeof()怎么使用”,在日常操作中,相信很多人在C语言中的strlen()和sizeof()怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言中的strlen()和sizeof()怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

C语言中的strlen()和sizeof()对比

在C语言中,没有字符串这种变量类型,一般用两种方法实现。
一是用双引号生成常量字符串再赋值给一个指针,指针指向的是该常量字符串的首字符地址;
二是利用字符数组,把字符存储在数组中。值得注意的是,利用字符数组创建字符串的时候记得把’\0’存进去(‘\0’本身是一个字符,占一个字节),因为很多对字符进行操作的库函数或多或少都跟’\0’有关系,或者说’\0’是字符串结束的官方标志。

字符串char arr[]={'a','a','a','a','a','a'}char *str = "aaaaaa"

定义:
**1. strlen函数:**计算的是字符串str的长度,从字符的首地址开始遍历,以 ‘\0’ 为结束标志,然后将计算的长度返回,计算的长度并不包含’\0’。

当我们遇到“\0"时我们就要停止读取,此时“\0"前字符的个数就是字符串的长度,注意:这里的“\0"只是结束标志,仅仅告诉我们strlen函数读取到这里就要停止了,“\0"不算做一个字符!!!

**2. sizeof函数:**相比strlen函数,sizeof就简单多了,sizeof其实就是一个运算符,主要用来计算所占空间字节的大小。

指针字节:
指针 16位 2个字节
指针 32位 4个字节
指针 64位 8个字节

32位系统:
char 1个字节
short 2个字节
int 2个字节
long 4个字节
char* 4个字节
int* 4个字节
int** 4个字节

64位系统:
char 1个字节
short 2个字节
int 4个字节(x 2)
long 8个字节(x 2)
char* 4个字节
int* 4个字节
int** 4个字节

1. strlen()

int main () {char *str="xiaolong";printf("%d\n",strlen(str));return 0;}输出:8
#include <stdio.h>#include <string.h>int main () {char str[]="xiaolong";printf("%d\n",strlen(str));return 0;}输出:8
#include <string.h>int main () {char str[10]="xiaolong";printf("%d\n",strlen(str));return 0;}虽然数组大小是10,但是编译器自动在xiaolong后面添加了\0 ,因此长度不是10而是8输出:8

2. sizeof()

#include <stdio.h>#include <string.h>int main () {char str[10]="xiaolong";printf("%d\n",sizeof(str));return 0;}指定大小为n的char数组无论如何都是占用n个字节,例如此处10字节输出:10
#include <stdio.h>#include <string.h>int main () {char *str="xiaolong";printf("%d\n",sizeof(str));return 0;}由于是指针,32位机器指针占4个字节输出:4
#include <stdio.h>#include <string.h>int main () {char str[]="xiaolong";printf("%d\n",sizeof(str));return 0;}结果不是8而是9,因为默认在后面添加了一个\0,  \0也算一个字节输出:9

size_t 的定义
size_t是一种机器相关的无符号类型,它被设计的足够大以便能表示内存中任意对象的大小。
在C语言中头文件为stddef.h,在C++语言中头文件为cstddef。
size_t 是sizeof的返回类型,在64位中是unsigned long int,在32位中是unsigned int。
2.使用
size_t类型通常用于循环、数组索引、大小的存储和地址运算。数组的下标通常定义为size_t类型。size_t可以跨平台,并且具有高代码的可移植性、有效性或者可读性。

到此,关于“C语言中的strlen()和sizeof()怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯