C语言_scanf(),strlen(),size()的特性和各自的区别

觉得有用的看官评论下,评论有用或者1就行了哈,给作者动力啊!

c 复制代码
#include <stdio.h>
#include <string.h>
#define PRAISE "You are an extraordinary being."//这里有31个字符,加上空格和"."
int main(void){
	char name[40];
	
	printf("please input your name!");
	scanf("%s", name);//scanf函数,在输入的字符串中如果遇到空格、制表符和换行符就会自动停止,如果输入Bard James,就只会读取Bard,后面的James读取不了 
	printf("Hello,%s,welcome to my home %s\n", name, PRAISE);//这里会显示Bard,welcome to my home You are an extraordinary being
	printf("Yor name of %zd letters occupies %zd memory cells \n", strlen(name),sizeof name);//Yor name of 4 letters occupies 40 memory cells 
	printf("The phrase of praise  has %zd  letters ", strlen(PRAISE));//这里是31 
	printf("and occupies %zd memory cells.\n",sizeof PRAISE);// 这里sizeof函数,要算末尾的空字符\0 。而strlen函数是不包含\0的 
	return 0;
}

结果如下

sizeof(),和sizeof 字符数组名称 ,比如 :sizeof name

一般建议都用sizeof()

scanf函数和sizeof函数有区别,sizeof读取所有字符,包括空格和小数点,而scanf遇到空格、制表符和换行符就会停止读取

相关推荐
专注仿真2 分钟前
线性回归和逻辑回归算法详解
开发语言·人工智能·python·大模型训练·控制算法
jimy142 分钟前
C++ 中的 `T&&`:右值引用与转发引用
开发语言·c++
呆呆虫121 小时前
用 orjson 加速 SerpBase 响应解析:基准对比与注意事项
开发语言·php
心疼你的一切1 小时前
Python自动发邮件实战定时发报表
大数据·开发语言·python
Zwawa2 小时前
串口为什么会丢字节:从轮询到中断和环形缓冲区
c语言·单片机·嵌入式
Wang's Blog2 小时前
Java 项目实战:交友项目 - 用户体系集成总结
java·开发语言·交友
中科三方3 小时前
IPv6检测常见问题:AAAA记录检测不通过是什么原因?
开发语言·php
沫璃染墨4 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
刚入门的大一新生4 小时前
Linux-线程互斥
java·开发语言
香芋芋圆4 小时前
iD-editor 详解|OSM官方在线编辑器,基于D3.js的轻量地图编辑器
开发语言·javascript·编辑器