杰克今天想要试试使用c语言实现一个动态的效果,让两边的字符向中间移动,我们来看看他是怎么实现的吧。
题目描述:
演示多个字符从两端向中间移动,使用字符自拟,符号为‘#’。
输入描述:
无
输出描述:
一行,动态的演示字符从两端移动到中间。
题目解析
我们这个题目的要求是动态的演示字符,这里我们首先需要编写出字符移动的代码,之后将代码从头到尾打印出来,之后动态的效果是通过代码的逐步变化得到,最后打印出整个输出结果。在这个过程中,我们需要使用Windows.h库中的system("cls")用来清空每次产生结果之前的结果,对结果进行更新之后实现一个动态的效果,在我们使用的过程中我们发现,我们在一步一步调试的时候是正常生成的动态效果,之后我们生成的效果太快,所以我们这里需要一个sleep函数来对程序进行一个延时,这个函数属于stdlib.h的头文件,我们设置延时为1000ms。
代码表示
#include<stdio.h>
#include<Windows.h>
#include<stdlib.h>
int main()
{
char arr1[] = "welcome to bit!!!!" ;
char arr2[] = "##################" ;
//左右字符下标位置
int left = 0;
int right = sizeof(arr2)/sizeof(arr2[0])-2;//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,右下标需要我们去使用数组中sizeof操作符或者strlen函数的使用,使用它们去计算数组中元素个数,之后我们使用数组中元素个数-1得到右下标,这里如果我们使用了sizeof操作符的话就需要-2,这是因为在使用sizeof操作符去计算数组中元素个数的时候,我们会将末尾的'\0'也计算进去,所以这里我们需要-2。
之后我们置换数组1和数组2之间的元素,使用system函数来实现清屏操作,通过每次的清屏和打印实现了字符的动态进程。调用sleep延时清屏,便于更好的展示出代码运行的效果。
每天都是不一样的一天,让我们去学习新的知识吧,兄弟们加油!