C语言:用指针实现,分别输入s的学号、姓名(姓名不含空格)、年龄和性别等信息,各数据成员间用空格间隔。
时间: 2023-11-22 21:52:05 浏览: 141
下面是用指针实现的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20
struct student {
char id[10];
char name[MAX_NAME_LEN + 1];
int age;
char gender;
};
int main() {
struct student s;
char *p;
// 输入学号
printf("请输入学号:");
scanf("%s", s.id);
// 输入姓名
printf("请输入姓名:");
p = s.name;
while ((*p = getchar()) != ' ') {
p++;
}
*p = '\0';
// 输入年龄
printf("请输入年龄:");
scanf("%d", &s.age);
// 输入性别
printf("请输入性别(M/F):");
scanf(" %c", &s.gender);
// 输出输入的信息
printf("学号:%s\n", s.id);
printf("姓名:%s\n", s.name);
printf("年龄:%d\n", s.age);
printf("性别:%c\n", s.gender);
return 0;
}
```
在这个程序中,我们首先定义了一个 `struct student` 结构体,包含了学生的学号、姓名、年龄和性别等信息。然后我们通过指针来输入这些信息,具体地:
1. 先输入学号,直接用 `scanf()` 函数读取一个字符串即可;
2. 输入姓名时,我们需要逐个读取字符,直到遇到空格,此时将空格替换为字符串结束符 `\0`,表示姓名输入结束;
3. 输入年龄和性别时,直接用 `scanf()` 函数读取一个整数和一个字符即可。
最后,我们输出输入的信息,验证程序的正确性。
阅读全文