qfedu-c-level/day12/d10.c

42 lines
1.5 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct LRC
{
int lineNo; // 行号
char show_time[10]; // 歌词时间
char content[128]; // 歌词内容
} line1, line2; // 第一行歌词,第二行歌词
#define slrc struct LRC // 定义别名
int main()
{
// line1.content = "天青色等烟雨,而我在等你"; // 错误,不能这样赋值,因为 content 是数组,不能直接赋值
// 正确写法是使用 strcpy 函数
line1.lineNo = 1;
// 使用 strcpy 函数,将内容复制到结构体变量中成员的数组空间中
strcpy(line1.show_time, "00:00:01");
strcpy(line1.content, "天青色等烟雨,而我在等你");
line2.lineNo = 2;
// 使用 strcat 也能达成同样的效果
strcat(line2.show_time, "00:00:06");
strcat(line2.content, "炊烟袅袅升起,隔江千万里");
printf("%d %s %s\n", line1.lineNo, line1.show_time, line1.content);
printf("%d %s %s\n", line2.lineNo, line2.show_time, line2.content);
// 创建第三行
slrc line3 = {.lineNo = 3, .show_time = "00:00:11", .content = "在瓶底书汉隶仿前朝的飘逸"};
printf("%d %s %s\n", line3.lineNo, line3.show_time, line3.content);
slrc line4 = line3; // 结构体变量之间可以直接赋值
line4.lineNo = 4;
// line4.content = "加个字"; // 错误,不能这样赋值,因为 content 是数组,不能直接赋值
strcat(line4.content, "加个字");
printf("%d %s %s\n", line4.lineNo, line4.show_time, line4.content);
return 0;
}