学习C语言一段时间了,我深知只是一味的往脑子里放知识是行不通的,唯有靠实践才能让知识活学活用举一反三,惯例上代码:
注:一些心得和注意事项全在代码注释里
//取歌词
char *get_lrc(char *lrc) {
int num=0;
FILE *pf = fopen(lrc,"r");
if(pf==NULL)
perror("fopen");
if (fseek(pf, 0, 2))
perror("fseek");
else {
num = (int)ftell(pf);
}
rewind(pf);
char *str = (char*)(calloc(num, 4));
if (str) {
fread(str, num, 1, pf);
}
else {
perror("calloc");
}
fclose(pf);
return str;
}
void insert_link(LRC_LINK **head, LRC_LINK *new_link) {
LRC_LINK *new_node = (LRC_LINK *)calloc(1, sizeof(LRC_LINK));
*new_node = *new_link;//一定要申请新的空间,然后内容复制
LRC_LINK *pb = *head;
if (pb == NULL) {
*head = new_node;
}
else {
while (pb->next != NULL) {
pb = pb->next;
}
pb->next = new_node;
}
}
void print_link(LRC_LINK *head) {
LRC_LINK *pf = head;
if (pf == NULL) {
printf("link not find\n");
}
else {