C语言 strcpy如何实现结构体中姓名的交换
时间: 2023-07-18 15:04:17 浏览: 172
假设我们有以下的结构体定义:
```
struct Student {
char name[20];
int age;
};
```
如果要交换两个学生的姓名,可以使用 `strcpy` 函数。
```
void swapName(struct Student *s1, struct Student *s2) {
char temp[20];
strcpy(temp, s1->name);
strcpy(s1->name, s2->name);
strcpy(s2->name, temp);
}
int main() {
struct Student s1 = {"Alice", 18};
struct Student s2 = {"Bob", 19};
printf("Before swap: s1=%s, s2=%s\n", s1.name, s2.name);
swapName(&s1, &s2);
printf("After swap: s1=%s, s2=%s\n", s1.name, s2.name);
return 0;
}
```
在 `swapName` 函数中,我们定义了一个临时的字符数组 `temp` 来保存 `s1` 的姓名,然后用 `strcpy` 函数将 `s2` 的姓名复制到 `s1` 的姓名中,再将 `temp` 中保存的 `s1` 的姓名复制到 `s2` 的姓名中,这样就完成了两个学生姓名的交换。注意,这里使用了指针来传递结构体变量的地址,这样就可以在函数内部直接修改结构体变量的值。
阅读全文