#include <windows.h>
#include <string.h>
#include <stdio.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(500); //为了视觉效果
system("cls"); //为了不重复显示
left++;
right--;
}
printf("Welcome to China!!!!!!\n"); //cls 后会消失所以再显示一次
return 0;
}
这里需要用到 system 、Sleep 、 strlen 函数,算出 right 不能用上次 sizeof(arr) / sizeof(arr[0]) 的方法,strlen 可以直接求得字符串长度是5,由于下标是从0开始,所以要 - 1。
system("cls") 是清除桌面,为了让变化显得明显不重复,所以每一次后都清空一次(最后要printf一次,因为最后一次再循环中会清理)。
Sleep(500) 是0.5s休眠一次,因为计算机跑起来太快了,可能看不到效果,所以要产生逐渐出现的效果 。