sizeof与strlen的区别

sizeof与strlen的区别,演示多个字符从两端移动,向中间汇聚。

//w######################!
//we####################!!
//wel##################!!!
//welc################!!!!
//welco##############!!!!!
//welcom############!!!!!!
//welcom ##########!!!!!!!
//welcom t########e!!!!!!!
//welcom to######me!!!!!!!
//welcom to ####ome!!!!!!!
//welcom to m##home!!!!!!!
//welcom to my home!!!!!!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
	
	char arr1[] = "welcom to my home!!!!!!!";
	char arr2[] = "########################";		
	int left = 0;
		
	//int right = strlen(arr1)-1; 
	//strlen 是一个库函数,计算传进来的字符串的长度,以 ‘\0’结尾。	
	int right = (sizeof(arr1)/sizeof(arr1[0]))-2;
	//sizeof 是一个运算符,它计算的是传进来的指针在内存中所占空间大小,在编译时就已经获得了结果
	//一般而言后者的长度会比前者多1。
	//所以用sizeof 运算是要多减一。
	//如果理解不过来为什么right = 23,但实际字符数组arr1中有24个元素?
	//因为数组第一个元素是从0开始的。
	while ( left <= right) {
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n",arr2);		
		left ++;
		right --;
	}		
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值