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遇到空格、制表符和换行符就会停止读取

相关推荐
她说..20 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
watson_pillow20 小时前
c++ 协程的初步理解
开发语言·c++
庞轩px21 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你9121 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
白毛大侠1 天前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课1 天前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'1 天前
从0到1的C语言传奇之路
c语言·开发语言
不知名的老吴1 天前
返回None还是空集合?防御式编程的关键细节
开发语言·python
迈巴赫车主1 天前
蓝桥杯3500阶乘求和java
java·开发语言·数据结构·职场和发展·蓝桥杯
小菜鸡桃蛋狗1 天前
C++——string(上)
开发语言·c++