编写代码,演示多个字符从两端移动,向中间汇聚
先上代码:
#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <stdlib.h>
int main()
{
char arr1[] = "hello world!!!!!!";
char arr2[] = "#################";
int len = strlen(arr1);
int left = 0;
int right = len - 1;
while (left <= right)
{
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
Sleep(1000);//1000毫秒
system("cls");
left++;
right--;
}
printf("%s\n", arr2);
return 0;
}
在实现效果时,我们先创建两个字符数组:arr1和arr2,arr1放入我们的目标字符,arr2放入等多的“#”,创建left和right整型变量,第一次循环,left是表示数组的第一个下标,right是表示数组的最后一个下标。将arr1[left]赋值给arr2[left],arr1[right]赋值给arr2[right],打印arr2数组,并且left++,right–,为第二次循环准备,如此循环,直到left>right。
细节方面:
1、求right时,需要求数组长度(len),将数组长度-1就得到了第一次最后一个下标(数组下标从0开始,所以需要-1),而求字符数组长度,用strlen函数可以求出,但是需要引用头文件<string.h>。(在上篇文章中我们也介绍到用sizeof也能求数组长度,大家可以试一下);
2、函数Sleep的作用,函数Sleep作用是停顿多少毫秒再次执行(单位毫秒),在上述代码中,我们是停顿1000毫秒,也就是1秒,在继续执行。但是需要引用头文件<windows.h>。
3、system函数,system是库函数,用来执行系统命令的,cls命令是清空屏幕,所以采用system函数,是会呈现出打印一次,清空屏幕,再次打印,再次清空。呈现效果就像在同一行进行向两端移动,但是引用system函数,需要引进头文件<stdlib.h>。
这段代码涉及的知识点较多,希望大家能自己动手去尝试,如有问题,欢迎反馈,希望能给大伙带来帮助,谢谢各位!