3、实现多个字符从两端移动,向中间汇聚

        大家好,我是立志教会大家C语言的山鬼泣江。

        大家看题目一定会感到有点懵,但是看一下演示一定就明白了。

多个字符从两边向中间汇集

        好啦,相信现在大家一定就明白了,接下来就可以讲一下原理了。

        实现这个效果的核心逻辑很简单,不过只是一个 for 循环或者是 while 循环,但是我为什么还是把这个写成课一篇博客呢?因为这个题会牵扯很多零碎的知识点,比如说清屏和延时打印。

        废话少说,直接上代码!

#include<string.h>
int main()
{
	int left=0;
	int right=8;
	char arr1[10] = "*********";
	char arr2[10] = "I LOVE U!";
	int a = strlen(arr2) - 1;
	int b = strlen(arr1) - 1;
	while (left<=right)
	{
		arr1[left] = arr2[left];
		arr1[right] = arr2[right];
		printf("%s\n", arr1);
		left++;
		right--;
	}
	return 0;
}

         这样我们就完成了初步的任务,但是这个还是和我们预想的效果不太一样。

        首先,我们想要的是只有一行——一直在变化的一行,而不是像现在一样,分为5行出现。

        其次,我们是想让他一个图像一个图像的出现。

        如果用一句话来概括就是我们想要的是“时间”上的改变,而不是像现在一样在“空间”上的改变。

        这个时候我们便需要两个函数,sleep 函数和 system("cls")

        sleep ( ) 函数,翻译是睡觉,也就是延迟的意思,所以sleep函数的作用就是使本应出现的字符进行延迟出现,在括号()中填入数字就可以使其延迟填入数字的时间 ,单位是毫秒

        system("cls"),意思是清屏的意思,作用是消除屏幕上所有字符。

        注意,sleep函数和system函数都是<windows.h>的头文件,大家不要忘记加上哦。

        以下是修改过后的代码。

#include<stdio.h>
#include<string.h>
#include<windows.h>
int main()
{
	int left=0;
	int right=8;
	char arr1[10] = "*********";
	char arr2[10] = "I LOVE U!";
	while (left<=right)
	{
		arr1[left] = arr2[left];
		arr1[right] = arr2[right];
		printf("%s\n", arr1);
		Sleep(1000);//延迟打印
		system("cls");//清屏
		left++;
		right--;
	}
	printf("%s\n", arr1);
	return 0;
}

   

多字符终稿

     

         好啦,这是刷题系列的第三道题。我是立志教会大家学会C语言的山鬼泣江,大家再见~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值