答案如下:
#include<stdio.h>
#include<string.h>
#include<windows.h>
#include<stdlib.h>
int main()
{
char arr1[]="hello world!!!!!";
char arr2[]="################";
int left=0;
int right=strlen(arr1)-1;
//另一种right下标:int right=sizeof(arr1)/sizeof(arr1[0])-2;
while(left<=right)
{
arr2[left]=arr1[left];
arr2[right]=arr1[right];
printf("%s\n",arr2);
Sleep(1000);//休息一秒
system("cls");
left++;
right--;
}
return 0;
}
目的:
hello world!!!!!
################
h##############!
he############!!
..........
hello world!!!!!
思路:
1.使用两个数组字符空间储存“hello world!!!!!”和“################”,将前者的字符替换在后者的字符
2.对数组下标进行定义
左边第一个为left;右边为right
即左边left=0开始;右边由于需要算出字符串所占的长度
所以:方法一:使用#include<string.h>,用strlen直接计算引号内的长度空间大小就能得到right的下标
方法二:考虑到字符串中'\0'占一个字节单位,使用right=sizeof(arr1)/sizeof(arr1[0])-2时就需要注意是-2而不是-1
3.因为这是一个循环的过程依次要对#进行覆盖,向中间汇聚,所以left++且right--,while(left<=right)(上一章有较为详细介绍)
4.补充:
1.
Sleep(1000);
对应库函数
#include<windows.h>
作用:暂停代码一秒钟进入下一次的开始
2.
system("cls");
对应库函数
#include<stdlib.h>
作用:执行系统命令的一个函数-cls-清空屏幕