使⽤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;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。