利用C语言当中的结构体知识,建立学生结构体Stu,对应的属性有name(姓名),id(学号),score(分数),完成程序修改学生信息效果
时间: 2023-06-26 13:09:46 浏览: 312
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
以下是一个示例程序,用于定义一个学生结构体,并实现修改学生信息的功能:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
// 定义学生结构体
typedef struct {
char name[MAX_NAME_LEN]; // 姓名
int id; // 学号
float score; // 分数
} Stu;
// 修改学生信息函数
void modify_stu_info(Stu *stu, char *name, int id, float score) {
strncpy(stu->name, name, MAX_NAME_LEN);
stu->id = id;
stu->score = score;
}
int main() {
// 定义一个学生结构体
Stu stu = {"张三", 1001, 80.5};
// 输出原始学生信息
printf("原始学生信息:\n");
printf("姓名:%s\n", stu.name);
printf("学号:%d\n", stu.id);
printf("分数:%f\n", stu.score);
// 修改学生信息
modify_stu_info(&stu, "李四", 1002, 90.0);
// 输出修改后的学生信息
printf("\n修改后的学生信息:\n");
printf("姓名:%s\n", stu.name);
printf("学号:%d\n", stu.id);
printf("分数:%f\n", stu.score);
return 0;
}
```
在上面的程序中,我们首先定义了一个名为 `Stu` 的结构体,其中包含了学生的姓名、学号和分数三个属性。然后,我们定义了一个名为 `modify_stu_info` 的函数,用于修改学生信息。该函数接受一个指向学生结构体的指针,以及新的姓名、学号和分数三个参数,然后将这些新的值分别赋给结构体的对应属性。最后,在 `main` 函数中,我们首先定义了一个学生结构体,并输出了原始的学生信息。然后,我们调用了 `modify_stu_info` 函数,将学生的信息修改为新的值,并输出了修改后的学生信息。
需要注意的是,在 `modify_stu_info` 函数中,我们使用了 `strncpy` 函数来将新的姓名赋值给学生结构体的 `name` 属性。这是因为在 C 语言中,字符串是以字符数组的形式存储的,而如果直接使用赋值运算符将一个字符串赋值给一个字符数组,可能会导致缓冲区溢出的问题。因此,我们需要使用 `strncpy` 函数来保证赋值的安全性。
阅读全文