使用c语言实现数组连接

一、题目

参考题4:编写函数void appendArray(int data1[], int n1, int data2[], int n2)接收传入的数组1和数组长度,数组2和数组长度,功能是将传入的数组2元素复制到数组1的后面。在main函数中定义初始化data1和data2,调用函数并输出data1。

二、主函数

我们先写main函数部分,因为题目中给出的函数的参数是有字符长度的,而且传入的数组是int型,所以我们需要定义两个int型数组和两个变量x,y。这里是需要自己去输入字符串长度的,如果像是字符串数组没有给这一点的就要去使用strlen函数去计算这个字符串的长度。后面可以看到这个是需要使用的。然后给数组和变量赋值。调用函数最后打印str1数组。这个就是main函数部分,结合代码以及代码后面的注释去看。

三、appendArray函数

这个函数的目的是把str2数组中的元素接到str1的后面,所以说我们需要使用指针的知识。首先,我们要清楚的认识到数组在进行函数传参的时候传的其实只是这个数组的首地址,也就是说传入的data1[]就是一个指针。然后我们实现函数的目的,因为我们要把str2数组接到str1数组后面。现在data1[]和data2[]分别指向的是str1和str2的首个元素,我们不需要去更改str1本来的部分所以说我们把data1+n1(此处的n1就是str1中元素的个数)让他指向str1数组的最后面。在使用一个while循环循环的次数即为str2中元素的个数也就是n2。接着就是把指针data2指向的元素去赋值给指针data1所指向的地址中。如此,循环结束后我们的str1就是接入后的数组了。

 

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
void appendArray(int data1[], int n1, int data2[], int n2)//此处的data1[]本质上是一个指针
{
	int i = 1;//用来计数
	data1 = data1 + n1;//此处把data1指向str1数组的末端
	while (i <= n2)//刚好循环的次数是str2的长度
	{
		*data1 = *data2;//把str2的值赋在str1的末端
		data1++;
		data2++;
		i++;
	}
}
int main()
{
	int str1[20];//根据题目要求进行定义
	int str2[10];
	int x = 0, y = 0;
	
	//给数组长度和数组赋值
	//这里如果要求的是一个字符数组我们就要使用strlen函数进行计算字符串长度了
	//在使用strlen函数时不要忘记引用头文件#include<string.h>
	scanf("%d", &x);
	for (int i = 0; i < x; i++)
	{
		scanf("%d", &str1[i]);
	}
	
	scanf("%d", &y);
	for (int i = 0; i < y; i++)
	{
		scanf("%d", &str2[i]);
	}
	//调用函数
	appendArray(str1, x, str2, y);
	//打印结果
	for (int i = 0; i < x + y; i++)
	{
		printf("%d", str1[i]);
		str1[i]++;
	}
	return 0;
}

  • 10
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

东莞呵呵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值