加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
    • 1、strlen,sizeof
    • 2、scanf
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

strlen,sizeof,scanf对字符串计算

04/15 10:10
592
阅读需 3 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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模型 风险等级 参考价格 更多信息
S29AL016J70TFI023 1 Spansion Flash, 1MX16, 70ns, PDSO48, LEAD FREE, MO-142DDD, TSOP-48
$2.14 查看
FKFSREIHM0.032768-T3 1 Fox Electronics Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, SMD, 4 PIN

ECAD模型

下载ECAD模型
$1.07 查看
AB26T-32.768KHZ 1 Abracon Corporation CRYSTAL 32.7680KHZ 12.5PF T/H

ECAD模型

下载ECAD模型
$0.33 查看

相关推荐

电子产业图谱