【C语言】演示多个字符从两端移动向中间汇聚

这个代码需要用到数组以及while循环,通过左右下标的逐渐向中间逼近来达到想要的效果
代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
	char arr1[] = "hello world!!!";
	char arr2[] = "##############";
	int left = 0;
	int right = strlen(arr1) - 1;//-1是因为右下标(最右方)是数组大小-1,也就是13
	while (left <= right)
	{
		arr2[left] = arr1[left];
		arr2[right] = arr1[right];
		printf("%s\n", arr2);
		//++和--用来逼近中间下标
		left++;
		right--;//注意减号不要写成加号
	}
}

此时代码的运行结果如下图

此时我们发现这种变换方式并不是我们想要的结果,我们想要的是字符在控制台内逐渐向中间汇聚,而不是直接全部打印出来,所以需要用到Sleep(1000);(要用到windows.h头文件,括号内填写时间,单位是毫秒,也就是每打印完一个休息一秒)以及system(“cls”);(system是执行系统命令的一个函数,cls是清空屏幕,需要用到stdlib.h头文件)
优化后的代码如下:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<Windows.h>
int main()
{
	char arr1[] = "hello world!!!";
	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);
		system("cls");//注意system要放到Sleep下面用来清屏以达到想要的效果
		left++;
		right--;
	}
	printf("%s\n", arr2);//为了让程序运行的最后能够显示hello world,可以在末尾打印arr2
	return 0;
}

运行结果如下图
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用C语言中的字符串拼接函数strcat()和strtok()实现多个字符串的拼接,并且在中间加一个特定的字符。 首先,需要将第一个字符串和第二个字符串拼接,然后再将第三个字符串拼接到前两个字符串的结果后面。可以使用strcat()函数来实现字符串拼接。例如: ``` char str1[100] = "Hello"; char str2[100] = "World"; char str3[100] = "Goodbye"; strcat(str1, "-"); strcat(str1, str2); strcat(str1, "-"); strcat(str1, str3); printf("%s", str1); ``` 输出结果为:Hello-World-Goodbye。 这里使用了strcat()函数将字符串str2拼接到字符串str1的末尾,然后再将中间字符"-"拼接到str1的末尾,最后再将字符串str3拼接到str1的末尾,得到最终的字符串。 如果需要在每个字符串之间加上一个特定的字符,可以使用strtok()函数将每个字符串按照特定字符分割成若干个子字符串,然后再将子字符串拼接起来。例如: ``` char str1[100] = "Hello"; char str2[100] = "World"; char str3[100] = "Goodbye"; char* tok1 = strtok(str1, ""); char* tok2 = strtok(str2, ""); char* tok3 = strtok(str3, ""); char result[100] = ""; strcat(result, tok1); strcat(result, "-"); strcat(result, tok2); strcat(result, "-"); strcat(result, tok3); printf("%s", result); ``` 输出结果为:Hello-World-Goodbye。 这里使用了strtok()函数将每个字符串按照空字符分割成子字符串,然后使用strcat()函数将子字符串和中间字符"-"拼接起来,得到最终的字符串。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泠羽空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值