《用代码实现字符数组的动态填充与显示》

发布于:2025-04-03 ⋅ 阅读:(21) ⋅ 点赞:(0)

在这里插入图片描述

🚀个人主页:BabyZZの秘密日记
📖收入专栏:C语言


在编程的世界里,我们常常需要通过代码来实现各种有趣的功能。今天,我将和大家分享一个简单的 C 语言程序,它通过动态地填充字符数组并实时显示,为我们带来一种独特的视觉效果。这个程序不仅展示了字符数组的使用,还涉及到了循环控制、字符串操作以及简单的系统调用。接下来,让我们一起深入了解一下这个程序的实现过程和运行效果。

程序代码

#include <stdio.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
    char arr1[] = "Zjianzhen"; 
    char arr2[] = "#########"; 
    int left = 0; 
    size_t right = strlen(arr1) - 1;  
    while (left <= right)
    {
        arr2[left] = arr1[left];
        arr2[right] = arr1[right];
        printf("%s\n", arr2);
        Sleep(1000);
        system("cls");
        left++; 
        right--; 
    }
    printf("%s\n", arr2);
    return 0; 
}

程序功能

这个程序的核心功能是将一个字符数组 arr1 的内容逐步填充到另一个字符数组 arr2 中,并在填充过程中实时显示当前的状态。具体来说,它会从 arr1 的两端开始,逐个字符地将内容复制到 arr2 的对应位置,同时在每次复制后清除屏幕并显示当前的 arr2 内容。最终,当所有字符都被复制完成后,arr2 将与 arr1 完全一致。

代码解析

初始化部分

char arr1[] = "Zjianzhen"; 
char arr2[] = "#########"; 

这里定义了两个字符数组。arr1 是源数组,包含了我们想要复制的字符串 "Zjianzhen"。而 arr2 是目标数组,初始时用 # 填充,长度与 arr1 相同。

变量定义

int left = 0; 
size_t right = strlen(arr1) - 1;  

leftright 是两个指针变量,分别指向 arr1arr2 的两端。left 初始化为 0,指向数组的起始位置;right 初始化为 strlen(arr1) - 1,指向数组的末尾。

循环逻辑

while (left <= right)
{
    arr2[left] = arr1[left];
    arr2[right] = arr1[right];
    printf("%s\n", arr2);
    Sleep(1000);
    system("cls");
    left++; 
    right--; 
}

这是程序的核心循环部分。在每次循环中,程序会执行以下操作:

  1. 字符复制:将 arr1 中的第 left 个字符和第 right 个字符分别复制到 arr2 的对应位置。
  2. 显示当前状态:通过 printf 函数输出当前的 arr2 内容。
  3. 暂停与清屏:调用 Sleep(1000) 函数暂停 1 秒,然后通过 system("cls") 清除屏幕,为下一次输出做准备。
  4. 指针移动left 指针向右移动一位,right 指针向左移动一位,继续处理下一对字符。

循环会一直执行,直到 left 大于 right,即所有字符都被复制完成。

最终输出

printf("%s\n", arr2);

在循环结束后,arr2 已经完全复制了 arr1 的内容,此时程序会再次输出 arr2,显示最终的结果。

运行效果

当运行这个程序时,你将看到屏幕上逐步显示 arr2 的内容。初始时,arr2 是由 # 填充的,随着程序的运行,arr2 的两端会逐渐被 arr1 的字符替换,直到最终完全显示为 "Zjianzhen"。每次字符替换之间会有 1 秒的间隔,并且屏幕会在每次替换后清空,给人一种字符逐渐“填充”进数组的视觉效果。

总结

这个简单的 C 语言程序通过字符数组的操作和系统调用,实现了一个有趣的动态显示效果。它不仅展示了字符数组的基本操作,如字符复制和字符串长度计算,还通过循环控制和屏幕刷新,为程序增加了动态的视觉元素。通过这个程序,我们可以更好地理解字符数组的使用方法,以及如何通过简单的系统调用实现屏幕操作。希望这个程序能为你带来一些启发,也欢迎你在评论区分享你的想法和改进意见!