【C语言】while循环的简单应用

while循环的简单应用

题目:演示多个字符从两端向中间移动

有两串字符,分别是“Hello World!”和“############”,在开始的时候都是#,逐渐将#变为Hello World!中的字符,大致是这样:
第一次:
############
H##########!
第二次:
He########d!
第三次:
Hel#######ld!
……
直到:
Hello World!

代码实现

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "Hello World!";
	char arr2[] = "############";
	int left = 0;
	int right = strlen(arr1) - 1; //需要包含头文件<string.h>
	printf("%s\n", arr2);
	while (left <= right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		left++;
		right--;
	}
	return 0;
}

分析

有两个字符串,分别是“Hello World!”和“############”两个数组,左下标为0,右下标为字符的长度减去1,这里不使用sizeof来求右下标是因为这是字符串,前面的文章说过,字符串结束的标志是\0,它是隐含在字符串末尾的,当使用sizeof计算的时候会将\0一同计算进去。定义两个字符数组,分别为arr1和arr2,想要实现两边字符往中间移动,相当于从两边开始arr1一个一个覆盖掉arr2。

结果

在这里插入图片描述

我想让它停顿一下再打印,而不是一股脑全部打印出来,需要用到Sleep,可以实现停顿的效果

代码二次实现

#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
	char arr1[] = "Hello World!";
	char arr2[] = "############";
	int left = 0;
	int right = strlen(arr1) - 1; //需要包含头文件<string.h>
	printf("%s\n", arr2);
	while (left <= right)
	{
		Sleep(1000); //打印一次后休眠1000毫秒,需要包含头文件<windows.h>
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		left++;
		right--;
	}
	return 0;
}

二次结果

视频1

还不是很满意,我想让它在一行变换

代码最终实现

#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
	char arr1[] = "Hello World!";
	char arr2[] = "############";
	int left = 0;
	int right = strlen(arr1) - 1; //需要包含头文件<string.h>
	printf("%s\n", arr2);
	while (left <= right)
	{
		Sleep(1000); //打印一次后休眠1000毫秒,需要包含头文件<windows.h>
		system("cls"); //清理屏幕,system可以执行系统命令
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		left++;
		right--;
	}
	return 0;
}

最终结果

视频2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三尺h

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值