编写代码,演⽰多个字符从两端移动,向中间汇聚

代码如下:

#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”,因此求数组的长度就会有两种方式;

  1. strlen(arr);
  2. (sizeof(arr)/sizeof(arr[0]))-1;

转换成数组的最右边的下标:

  1. right = strlen(arr)-1;
  2. right = (sizeof(arr)/sizeof(arr[0]))-2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值