字符的汇聚

该代码示例演示了如何在C语言中创建一个程序,使多个星号字符从两端向中间移动,最终组合成字符串welcometochina!!!!!。程序通过定义两个字符串数组,利用while循环和Sleep函数控制动画效果,同时用system(cls)清屏,使得字符汇聚过程更直观。
摘要由CSDN通过智能技术生成

编写代码,演示多个字符从中端移动,向中间汇聚。


首先,明确代码要实现的功能

 屏幕上一开始出现多个“*”号。

演示多个字符从两端向中间汇聚,最终显示出“welcome to china!!!!!”。


然后,我们完成程序的具体实现

 1.存储所需数据。

建立两个数组,存储原字符信息和需要打印的字符信息:

#include <stdio.h>

int main()
{
    char arr1[] = "welcome to china!!!!!";    //需要打印的字符数据
    char arr2[] = "*********************";    //原字符数据
    return 0;
}

2. 实现字符从两端向中间汇聚。

要实现从两端向中间汇聚,就要确定两端的位置:

#include <stdio.h>
#include <string.h>    //使用strlen函数需要调用string.h头文件

int main()
{
    char arr1[] = "welcome to china!!!!!";
    char arr2[] = "*********************";
    int left = 0;                    //左下标
	int right = strlen(arr1)-1;      //右下标
    return 0;
}

 向中间汇聚,利用循环实现:

#include <stdio.h>
#include <string.h>

int main()
{
	char arr1[] = "welcome to china!!!!!";
	char arr2[] = "*********************";
	int left = 0;
	int right = strlen(arr1)-1;
	while (left<=right)    //利用循环实现字符从两端向中间汇聚
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		left++;
		right--;
	}
	return 0;
}

 3.优化程序:

可以利用Sleep函数实现显示间隔和system函数来清空屏幕以美化显示效果:

#include <stdio.h>
#include <string.h>
#include <windows.h>    //使用system函数需要调用windows.h头文件
#include <stdlib.h>     //使用Sleep函数需要调用stdlib.h头文件

int main()
{
	char arr1[] = "welcome to china!!!!!";
	char arr2[] = "*********************";
	int left = 0;
	int right = strlen(arr1)-1;
	while (left<=right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		Sleep(1000);//Sleep函数是实现睡眠,单位是毫秒(注意Sleep函数中S是大写)
		system("cls");//system是一个库函数,可以执行系统命令,cls是清空屏幕的一个命令
		left++;
		right--;
	}
	printf("%s\n", arr2);
	return 0;
}

最后,程序就实现了

#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>

int main()
{
	char arr1[] = "welcome to china!!!!!";
	char arr2[] = "*********************";
	int left = 0;
	int right = strlen(arr1)-1;
	while (left<=right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		Sleep(1000);
		system("cls");
		left++;
		right--;
	}
	printf("%s\n", arr2);
	return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

早八编程员

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

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

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

打赏作者

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

抵扣说明:

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

余额充值