• 正文
    • 1、strlen,sizeof
    • 2、scanf
  • 推荐器件
  • 相关推荐
申请入驻 产业图谱

strlen,sizeof,scanf对字符串计算

2024/04/15
1925
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1、strlen,sizeof

strlen,sizeof都可以对字符串长度进行计算

char test[]= “hello”         这种双引号字符串后面默认是有个  空字符

sizeof (test)          为6

strlen (test)           为5

sizeof:可用于任何变量名、类型名或常量值,当用于变量名(不是数组名)或常量时,不需要加括弧。

strlen:从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结知束符''为止,然后返回计数器值。

sizeof 可以用类型做参数,strlen 只能用 char* 做参数,且必须是以 结尾的。数组做sizeo的参数不退化,传递给strlen就退化为指针了。

sizeof是在编译的时候生效的,strlen是函数,在运行时生效。

2、scanf

scanf是从标准输入设备获取数据。以串口为例,使用串口助手发送数据的话,需要勾选发送新行。

scanf在读取输入的时候,分为多种情况:

一、读取字符串的时候(%s)

scanf会读取除了空白字符以外的所有字符,并在读取到第一个空白字符时结束读取,将空白字符之后的所有字符都暂存在缓冲区中。除非缓冲区被刷新或者字符被读取走,否则将一直停留在缓冲区中。对%s来说,回车和空格都是当前函数的结束字符

二、读取字符的时候(%c )

scanf会读取所有字符包括空白字符。但是他会在读取到第一个空白字符后结束读取。将空白字符之后的所有字符都暂存在缓冲区中。

三、读取除了字符和字符串以外的所有输入的时候

scanf函数每次读取一个字符,跳过所有的空白字符,直到遇到第一个非空白字符的时候才开始读取。

scanf是一个阻塞函数,如果没有获取到数据,就会一直等待这个要注意。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
ABM3-25.000MHZ-D2Y-T 1 Abracon Corporation CRYSTAL 25.0000MHZ 18PF SMD
$1.07 查看
KSZ9567RTXI-TR 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下载ECAD模型
$13.11 查看
ASH7KW-32.768KHZ-L-T3 1 Abracon Corporation CMOS Output Clock Oscillator, 0.032768MHz Nom, SMD, 4 PIN
暂无数据 查看
点赞
收藏
评论
分享
加入交流群
举报

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录