c语言strlen函数统计空格么,strlen()函数的几点注意的地方

本文详细探讨了C语言中的strlen函数,它用于计算以''结尾的字符串长度。在不同情况下,strlen函数的表现有所不同:1) 从键盘输入时,遇到空格即停止计数;2) 字符数组存储字符串时,系统会在末尾自动添加'';3) 存储字符数组时,需手动添加''作为结束标志,否则编译器会持续查找直到找到''。理解这些差异对于避免数组溢出和确保字符串正确处理至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strlen(const char*)函数是文件头#include "string.h"

下的库函数,其返回类型的是int,里面的参数返回类型是char* ,他的作用是后去字符串的长度,不过在

1.在scanf()键盘终端下输入zhang sen

2.在程序中获取char str[] = "zhang sen";

3.char str[] = {'z','h','a','n','g',' ','s','e','n'};

strlen是计算字符串(以'\0'结尾的字符数组)的函数

字符数据有两种用户,存储字符串和存储字符数组

三种情况不一样

一:第一种

.a4c26d1e5885305701be709a3d33442f.png

可以看到这里是当在终端输入字符串时,在第一空格时候就会被截断,无论后边有多少的的字符串或者空格都不会被获取长度,也就是说当在终端输入空格时候系统就默认为是'\0'结束符号

二:第二种

a4c26d1e5885305701be709a3d33442f.png

char数组存储字符串,从结果可以知道,数组中有空格但是系统把他当做了一个字符处理,在字符串的末尾系统会自动的添加一个结束符号'\0'

这是什么情况?

a4c26d1e5885305701be709a3d33442f.png

这里为什么会出现这种情况?数组只允许输入9个元素,而"zhang

sen"就只有9个元素,不是正好吗?为什么会出现13呢?

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

这是数组溢出的情况,不过C编译器能够通过,这样是非常危险地

三种情况:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

这是char数组的字符存储,从结果可以发现,这种情况系统并不会默认的在字符的末尾添加'\0',必须手动的添加一个'\0'才能得到我们想要的结果,如果没有添加,则编译器会一直的寻找知道找到一个结束标志'\0'为止

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值