将数组中的值复制到结构体的变量

问题描述

有什么方法可以将一个数组中的值复制到结构体变量中?下面是一个例子:

我有一个结构体,结构体有这些变量;

struct example
{ 
    int a;
    char b[];
};

我的主函数中有一个名为“token”的数组。 (首先,在另一个函数中,我使用 strtok 将字符串划分为标记,然后在主函数中使用该标记数组)。

现在我的令牌数组就像:

token[0] = abc;
token[1] = 2;
token[2] = 10;

现在我的目标是将这些标记的值匹配到我的结构变量中。

喜欢;

if token [0] == "something" (应该是字符串) 然后做 int a = 3

if token [0] =="anotherthing" (应该是字符串) 然后做 int a=2

token[1] =b;(我想将 token[1] 值赋给 b 数组)

我该怎么做?有什么建议吗?

解决方法

有没有办法将一个数组中的值复制到一个结构体变量中?

C 数组是一系列相同类型的连续值。它可以是一系列结构体、整数或字符……任何有效类型。如果您复制这些值中的一个或多个,您当然可以对它们进行任何操作,包括将它们分配给结构的一部分。如果您有:

int intArray[5] = {1,2,3,4,5};

和一个结构体:

struct Example
{
    int start1; 
    int end1;
    int start2; 
    int end2;
    char symbol[];
};

struct Example ex;

然后您可以将数组中的值分配给该结构的实例的一部分,就像您进行任何其他分配一样:

ex.start1 = intArray[0];
ex.end1 = intArray[4];
ex.start2 = intArray[1];
ex.end2 = intArray[3];

您的示例的某些部分令人困惑,因为不清楚您的数组中的值是否相同:

token[0] = abc;
token[1] = 2;
token[2] = 10;

这里的 abc 是什么?如果它与其他值一样是 int,那很好,但它是什么以及它与其他值的关系尚不清楚。其他一些语言允许在同一个数组中使用不同类型的值,但 C 不是这种情况。