代码如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main() {
char arr1[] = "welcome to bit...";
char arr2[] = "#################";
int left = 0;
int right=strlen(arr1)-1;
printf("%s\n", arr2);
while (left <= right) {
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s\n", arr2);
}
return 0;
}
执行效果:
该版本是最普通的代码,可以在此基础上加一些有意思的代码,增加趣味性。
(1)因为该代码执行时,是一瞬间出现的,因此可以加一行代码,每次循环后停一秒再执行下一次循环;
Sleep(1000);//睡眠一秒
在windows中,头文件是<windows.h>,参数是毫秒数,首字母要大写!!
在linux中,头文件是<unistd.h>,参数是秒数,首字母是小写!!
(2)循环一次打印出来,睡眠一秒,然后消失再打印下一次循环的结果;
system(“cls”);
其中system函数是库函数,作用:执行系统指令;头文件:#inclued<windows.h>;
其中cls命令的作用是:清理控制台屏幕信息;
因此,代码会修改成如下情况:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <Windows.h>
int main() {
char arr1[] = "welcome to bit...";
char arr2[] = "#################";
int left = 0;
int right=strlen(arr1)-1;
while (left <= right) {
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s\n", arr2);
Sleep(1000);
system("cls");
}
printf("%s\n", arr2);
return 0;
}
易错点:求数组的长度
该题中,数组中存放的是数组,数组是有结束符的”\0”,用sizeof求的时候,是包括”\0”,因此求数组的长度就会有两种方式;
- strlen(arr);
- (sizeof(arr)/sizeof(arr[0]))-1;
转换成数组的最右边的下标:
- right = strlen(arr)-1;
- right = (sizeof(arr)/sizeof(arr[0]))-2;