选择数组中的某些元素以创建新数组

话题

如何通过给定起始索引号和结束索引号来创建新数组,从而从数组中选择一定数量的元素?

例如,如果我的原始数组是{1,2,3,4,5,6},并且我说x = 0和y = 2是它们的索引值,那么我将有一个新数组{1,2, 3}。

谢谢。

来自莫斯科的弗拉德

如果您的编译器支持可变长度数组,则可以通过以下方式进行操作

#include <stdio.h>
#include <string.h>

int main(void) 
{
    int a[] = { 1, 2, 3, 4, 5, 6 };
    size_t n1 = 0, n2 = 2;
    int b[n2 - n1 + 1];

    memcpy( b, a + n1, ( n2 - n1 + 1 ) * sizeof( int ) );

    size_t n = sizeof( b ) / sizeof( *b );

    for ( size_t i = 0; i < n; i++ )
    {
        printf( "%d ", b[i] );
    }

    putchar( '\n' );

    return 0;
}

程序输出为

1 2 3

否则,应动态分配新数组,例如

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(void) 
{
    int a[] = { 1, 2, 3, 4, 5, 6 };
    size_t n1 = 0, n2 = 2;

    size_t n = n2 - n1 + 1;
    int *b = malloc( n * sizeof( *b ) );

    memcpy( b, a + n1, n * sizeof( int ) );

    for ( size_t i = 0; i < n; i++ )
    {
        printf( "%d ", b[i] );
    }

    putchar( '\n' );

    free( b );

    return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

选择数组中的特定元素以进行下拉

合并1个数组的元素以使用for循环创建一个新数组

使用一个数组的元素作为索引来创建新数组,以选择其他数组中的元素-JavaScript

如何从数组的数组的firsts元素中创建新数组

反转2d数组中的某些元素以生成指定格式的矩阵Python 3

从矩阵中按列选择元素以在 R 中创建新矩阵列表

如何选择除ith元素以外的数组中的所有其他值?

通过数组中的元素组合创建新数组_ JavaScript

如何随机选择数组元素以更改按钮文本?

选择数组的随机元素以设置Youtube videoId API

python - 根据列表中的某些元素从数组中选择行

从数组中提取特定元素以创建范围

显示数组中的某些元素?

根据给定的第 n 个元素以循环方式从数组中获取新的第 n 个索引元素

提取数组元素以分离数组

在Bash数组中添加元素以供以后打印

如何从数组中删除某些元素到一个新的数组,而其他元素只保留原始数组?

如何从数组中获取特定元素并基于数组键值的比较创建一个新数组?

在新数组中创建和推送元素取决于条件

如何从另一个数组中的某些元素创建数组?

匹配二维数组中的某些值后,Python创建新数组

如何删除字符数组中的元素或创建没有特定元素的新数组的副本?

PowerShell数组的任何元素以另一个数组中的任何元素结尾

如何从预定义数组创建某些元素数组

在新数组中获取数组元素

Python为什么某些元素以数组和标量形式出现的原因

如何从位于数组中的元素创建数组?

使用数组中的键创建新数组

如何使用 TypeScript 中现有数组中的选定元素创建新数组?