csdn博客-字符从两端向中间动态汇聚

字符从两端向中间动态汇聚

练习: 编写代码,演示多个字符从两端移动,向中间汇聚(自定义长度字符)

1.这里我们定义字符串”happy new year!!! ”,对其进行思路演示。

演示过程

①初始
happy new year!!!
#################

②通过下标左+右-向中间移动

h###############!
ha#############!!
hap###########!!!
happ#########r!!!
happy#######ar!!!
happy #####ear!!!
happy n###year!!!
happy ne# year!!!
happy ne# year!!!
happy new year!!!

2.知识点

Ⅰ.**strlen()**计算字符串的有效长度,不包括0在内。

需引#include <string.h>头文件

Ⅱ.**sizeof()**计算数组的元素个数

Ⅲ.**Sleep()**程序运行睡眠(stop run) ;程序暂停执行指定的时间,让出cpu给其他线程,但是其监控状态仍然保持,当指定的时间到了会自动恢复运行状态。(其中1000ms=1s)

需引#inculude <windows.h>头文件

**注:**Sleep首字母需要大写

Ⅳ.**system(“cls”)**清空屏幕;在我们的程序中打印一行清除一行,为实现一行动态汇聚移动的效果,直到程序字符串演示结束。

3.代码实现

#include <stdio.h>
#include <string.h>//strlen头文件 计算字符串的有效长度
#include <windows.h>//Sleep、清空屏幕 头文件

int main()
{
    char arr1[] = "happy new year!!!!!";//自己定义字符
    char arr2[] = "###################";
    int left = 0;//左下标
    int right = strlen(arr1) - 1;//右下标

    while (left <= right)
    {
    arr2[left] = arr1[left];
    arr2[right] = arr1[right];
    printf("%s\n",arr2);
    Sleep(1000);//睡眠1秒(stop run) 1000ms=1s 动态效果 
    system("cls");//清空屏幕 为了能够一行演示两端移动
    
    //左+右-向中间移动
    left++;
    right--;  
    }
    printf("%s\n",arr2);
    return 0;
}

4.总结

  • 字符串需要以\0作为结尾,strlen函数返回的是在字符串中\0前面出现的字符个数(不包含\0)
  • 字符串记得初始化
  • 注意strlen()返回的类型,无符号长整型
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值