如何实现将一句话进行动态打印?而非直接打印出来例如“welcome to China!!!”,这样显得呆板且干滞。如果使得字符从两边向中间动态汇聚,就会呈现出美观的效果。
其实我们可以采用两组数组,用两串字符实行多次的单个字符替换来达到想要的效果。我们将最左侧的字符数组下标设为 left ,最右侧的字符数组下标为字符串的长度-1(因为字符下标是从零开始的)。那么如何表示字符数组的字符串长度呢。我们可以设 sz = sizeof(arr)/ sizeof(arr[0])。这样暂时实现了所需要变量的定义。
接下来便是要实现操作了,多次打印,每次替换一个字符,使字符从两边向中间进行 汇聚,显然可以每打印一次将left ++,right--。当left与right相交时停止操作,那么我们可以用while语句来实现操作。
这里我们加入了Sleep函数来执行系统命令,使得每次打印后停留1秒,便于我们观察。(需要注意:使用此函数时须引头文件<windows.h>并且首字母应大写)如此得到如下运行结果
当然如果觉得这样做太繁冗,不够简洁,我们可以每次打印之后使用 system ("cls"); 及时清空屏幕(需要注意的是,最好在while循环外再打印一次字符串,否则,最后一次打印的结果也会被清空),另外如果将*****用空格代替,将实现字符从两边向中间汇聚的效果看起来更加简洁。
当然,如果去掉right --,就会实现一句话从左到右逐个字符进行打印,如此一来,一句话就变得生动,跳跃,有活力喽!