如何在 C 结构体中初始化字符数组?

2025年5月11日 | 阅读 4 分钟

在本文中,我们将讨论如何在 C 结构体中初始化字符 数组。初始化之前,我们必须了解 C 中的结构体和字符数组

C 中的结构体是什么?

在 C 中,结构体是一种用户定义的数据类型,它允许我们将不同类型的数据组合在单个变量名下。结构中的项称为其成员,它们可以是任何有效的 数据类型。结构体提供了一种组织和封装相关数据的方法。

C 中的字符数组是什么?

字符数组存储字符序列,通常用于在 C 中表示字符串。

C 中的字符串表示为字符数组,并在 字符串末尾用空字符 ('\0') 标记。

语法

它具有以下语法:

1. 声明时的直接初始化

我们可以在 C 结构体中通过声明时的直接初始化来初始化字符数组。这意味着在结构体声明中直接提供数组的初始值。

示例 1

让我们举一个例子来说明 C 中声明时的直接初始化。

输出

 
Person-1's Name is : Rajin
Person-2's Name is : Mogili
Person-3's Name is : Pavan   

说明

此 C 代码定义了 Employee_data 结构体,该结构体有一个名为 Name 的字符数组成员,最大字符存储容量为 50。Person 1、Person 2 和 Person 3 是此结构体的三个实例,它们被声明并用不同的名字(“Rajin”、“Mogili”和“Pavan”)进行了初始化。之后,它使用 printf() 命令打印这些人的名字。当程序成功运行后,它返回 0。

示例 2

输出

 
The char array is: G, O, D, I, S, G, R, E, A, T, , , , , ,   

说明

  1. 该程序定义了一个名为 DisplayCharArray 的函数,用于打印字符数组,并包含了所需的标准库 string.h、stdio.h 和 stdlib.h。
  2. DisplayCharArray 函数通过打印带逗号分隔的输入数组中的字符来演示数组遍历和字符显示。
  3. 此外,即使在此代码中未使用,它还定义了 LENGTH 和 HEIGHT 变量。
  4. 在 main 函数中,字符数组首先使用字符 'G'、'O'、'D'、'I'、'S'、'G'、'R'、'E'、'A'、'T' 进行初始化,长度为 15。
  5. 然后,通过从 main 函数使用 DisplayCharArray 来打印消息“The char array is:”和数组的内容。
  6. 最后,使用 exit(EXIT_SUCCESS),程序以成功状态结束执行。

2. strcpy 函数

strcpy 函数是 string.h 库中定义的标准 C 库函数。它可用于将字符串从一个地方复制到另一个地方。它接受两个参数:目标字符串(字符串将被复制到的位置)和源字符串(要复制的字符串)。

使用 strcpy 初始化结构体中的字符数组

  1. 定义结构体:应定义包含字符数组作为其成员之一的结构体。
  2. 声明实例:声明结构体的实例。
  3. 使用 strcpy:使用 strcpy 将字符串复制到结构体实例的字符数组成员中。

示例

让我们举一个例子来说明如何在 C 中使用 strcpy() 函数初始化结构体中的字符数组。

输出

 
The name of the Person is: Venkat
The age of the Person is: 22   

说明

  1. 该代码定义了一个名为 Employee 的结构体,其中 name 是一个字符数组,最大名称长度为 MAX_NAME_LENGTH(50 个字符),还有一个整型 age。
  2. 在 main 函数中定义了 Employee 结构体的实例 Person。
  3. 使用 strcpy 函数将字符串“Venkat”初始化为 Person 结构体的 name 成员。
  4. Person 结构体的 age 成员被设置为 22。
  5. 之后,程序使用 printf 输出用户的姓名和年龄。
  6. 成功执行后,程序返回 0。