当前位置:首页 » 编程语言 » c语言歌词解析项目
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言歌词解析项目

发布时间: 2023-05-16 16:11:39

c语言歌词解析器

网上有下的

⑵ 这道C语言谁能解析一下

它的运行结果是输出 "first"。下面是代码的解析:

1. 首先包含头文件 `stdio.h`,以便程序能够使用标准输入输出函数。

2. 然后定义了一个 `main` 函数,该函数的返回值类型是整型 `int`。

3. 在 `main` 函数内部,定义了两个整型变量 `x` 和 `y`,并将 `x` 的顷租值设为 `1`,将 `y` 的值设弊册为 `0`。

4. 接着使用 `switch` 语句对 `x` 进行判断。由于 `x` 的值为 `1`,所以程序会进入 `case 1:` 分支。

5. 在 `case 1:` 分支中,再次使用 `switch` 语句对 `y` 进行判断。由于 `y` 的值为 `0`,所以程序会进入 `case 0:` 分支。

6. 在 `case 0:` 分支中,使用 `printf` 函数输出字符串 "first",然后使用 `break` 语句跳出 `switch` 语句。

7. 最后,在 `main` 函数的结尾处添加了一个右括号,以表示函数的结束。

因雀卜兆此,该程序的运行结果是输出 "first"。

⑶ C语言 统计歌词中的单词个数,并找出最短和最长的单词(必须用指针)求帮忙,感谢!!!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 500
int gecifun(char *geci, char *strmax, char *strmin)
{
char temp[30];//存兄衫液储每个单词数组
int num=0,i,word=0;//单词数量塌锋和每个单词数组下标
for(i=0;(geci[i])!='\0';i++)
{
if(geci[i]==' '||geci[i]==',' || geci[i]=='.' || geci[i]=='?') //单词分隔符
{

if (word != 0){
temp[word]='\0';
if (num==1){//获取第一个单词的时候,将第一个单词复制给最大和最小
strcpy(strmax,temp);
strcpy(strmin,temp);
}
else//第二个单词之后比较字符串长度之后进行复制
{

if (strlen(temp)>=strlen(strmax))
strcpy(strmax,temp);
if (strlen(temp)<=strlen(strmin))
strcpy(strmin,temp);
}
num++;//单词数羡物量递增
word = 0;//单词数组下标置零
}
}
else
temp[word++] = geci[i];//每个单词按位置赋值
}
return num;
}
int main()
{
int acount;
char lstr[30],sstr[30];
char song[N] = "Daddy finger, Daddy finger, where are you? Here I am. Here I am."
"How do you do? Mammy finger, Mammy finger, where are you? Here I am. Here "
"I am. How do you do? Brother finger, Brother finger, where are you? Here "
"I am. Here I am. How do you do? Sister finger, Sister finger, where are you?"
"Here I am. Here I am. How do you do? Baby finger, Baby finger, where are you?"
"Here I am. Here I am. How do you do?";
acount=gecifun(song,lstr,sstr);
printf("歌词中共有%d个单词。歌词中最长的单词为%s,最短的单词为%s。\n",acount,lstr,sstr);
return 0;
}

⑷ C语言中项目的概念是什么

项目 project, 是一组代码的统称
这一组代码 必须实现一个完整的功能, 可以是一个完整的程序, 也可以是其中一个模块。
项目的创立,就是为了更好的组织管理这些代码。
对于初学者来说, 项目往往只有一个文件 几个函数
这是体现不出项目的价值
但一旦完成一个比较大的功能时,项目代码可以达到几千上万个文件
这时项目的管理就很有必要了。

⑸ 急求!!求高手用c语言 编辑一个歌词解析器,可以发给我邮箱[email protected] 谢谢了!

必须要RMB,动力才充足

⑹ c语言程序设计MP3或MP4文件基本信息的解析

找了个MP3看了下,comment是29个迟桐返字节。
可参考 http://www.chineselinuxuniversity.net/articles/27374.shtml

拿VC的C语言轮凳写了下:
头文件:
#include <码饥stdio.h>

// TODO: reference additional headers your program requires here

#define MP3_ID3_LENGTH 10
typedef struct tag_ID3_INFO
{

} ID3_INFO;

#define IDENTIFY_LEN 3
#define TITLE_LEN 30
#define ARTIST_LEN 30
#define ALBUM_LEN 30
#define YEAR_LEN 4
#define COMMENT_LEN 30
#define GENRE_LEN 1

// IDENTIFY_LEN + TITLE_LEN +...
#define MP3_INFO_LENGTH 128

typedef struct tag_MP3_INFO
{
char Identify[IDENTIFY_LEN + 1]; //TAG三个字母
//这里可以用来鉴别是不是文件信息内容
char Title[TITLE_LEN + 1]; //歌曲名,30个字节
char Artist[ARTIST_LEN + 1]; //歌手名,30个字节
char Album[ARTIST_LEN + 1]; //所属唱片,30个字节
char Year[YEAR_LEN + 1]; //年,4个字节
char Comment[COMMENT_LEN + 1]; //注释,28个字节
char Genre[GENRE_LEN + 1]; //类型 ,1个字节
} MP3_INFO;

C文件:
#include <string.h>

#define MP3_OK 1
#define MP3_ERROR 1

FILE *OpenMp3File(char *pFileName);
int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo);
int OutputMP3Info(MP3_INFO *pstMp3Info);

int main(int argc, char* argv[])
{
FILE *pFile = NULL;
MP3_INFO stMp3Info = {0};
char *pfname = "E:\\Project\\MP3\\test.MP3";

pFile = OpenMp3File(pfname);
if (NULL == pFile)
{
return MP3_ERROR;
}

ReadMP3Info(pFile, &stMp3Info);

printf("\r\nMP3 file: %s", pfname);
OutputMP3Info(&stMp3Info);

printf("Hello World!\n");
return MP3_OK;
}

FILE *OpenMp3File(char *pFileName)
{
FILE *pFile = NULL;
pFile = fopen(pFileName,"rb");
if (NULL==pFile)
{
printf("open read file error!!");
return NULL;
}

return pFile;
}

int ReadMP3Info(FILE *pFile, MP3_INFO *pstInfo)
{
int len = 0;
if ((NULL == pFile) || (NULL == pstInfo))
{
return MP3_ERROR;
}

fseek(pFile, 0, SEEK_END);
len = ftell(pFile);
if (len <= (MP3_INFO_LENGTH + MP3_ID3_LENGTH))
{
return MP3_ERROR;
}

memset(pstInfo, 0, sizeof(MP3_INFO));

fseek(pFile, -MP3_INFO_LENGTH, SEEK_END);
len = fread((char *)(pstInfo->Identify), 1, IDENTIFY_LEN, pFile);
len += fread((char *)(pstInfo->Title), 1, TITLE_LEN, pFile);
len += fread((char *)(pstInfo->Artist), 1, ARTIST_LEN, pFile);
len += fread((char *)(pstInfo->Album), 1, ALBUM_LEN, pFile);
len += fread((char *)(pstInfo->Year), 1, YEAR_LEN, pFile);
len += fread((char *)(pstInfo->Comment), 1, COMMENT_LEN, pFile);
len += fread((char *)(pstInfo->Genre), 1, GENRE_LEN, pFile);
if (MP3_INFO_LENGTH != len)
{
return MP3_ERROR;
}

return MP3_OK;
}

int OutputMP3Info(MP3_INFO *pstMp3Info)
{
printf("\r\nTag : %s", pstMp3Info->Identify);
printf("\r\nTitle : %s", pstMp3Info->Title);
printf("\r\nArtist : %s", pstMp3Info->Artist);
printf("\r\nAlbum : %s", pstMp3Info->Album);
printf("\r\nYear : %s", pstMp3Info->Year);
printf("\r\nComment: %s", pstMp3Info->Comment);

return MP3_OK;
}

测试:
MP3 file: E:\Project\MP3\test.MP3
Tag : TAG
Title : TrackTitle
Artist : ArtistName
Album : AlbumTitle
Year : 2012
Comment: This is a comment

⑺ C语言中如何读取lrc文件并把它放在数组中然后切开输出来,歌词是浮夸

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
structlrc
{
charsong_lrc[256];
structlrc*next;
};
structlrc*lianjie(structlrc*head,structlrc*node1)
{
structlrc猛伍*node2,*node3;
if(head==NULL)
{
head=node1;
returnhead;
}
node2=head;
while(node2!=NULL)
{
node3=node2;
node2=node2->next;
}
node3->next=node1;
returnhead;
}
intmain()
{
FILE*p;
charsong_lrc[256];
inti;
structlrc*head,*node1,*node2;
head=(structlrc*)malloc(sizeof(structlrc));
node2=(structlrc*)malloc(sizeof(structlrc));
p=fopen("F:/Kugou/qq音乐/爸爸妈妈-王蓉.lrc","r+");
fgets(song_lrc,250,p);
strcpy(head->song_lrc,song_lrc);
head->next=NULL;
for(i=0;i<2;i++)
{
node1=(structlrc*)malloc(sizeof(structlrc));
fgets(song_lrc,250,p);
strcpy(node1->song_lrc,song_lrc);
node1->next=NULL;
败冲head=lianjie(head,node1);
}
node1=head;
while(node1!=NULL)
{
for(i=4;i<100;i++)
枝枯或{
if(node1->song_lrc[i]==']'||strlen(node1->song_lrc)<3)
break;
if(i%34==0)
printf(" ");
printf("%c",node1->song_lrc[i]);
}
node1=node1->next;
printf(" ");
}
fclose(p);
getch();
}

我写的读取歌词代码,很早前写的了,可能有些问题哈,但大致上是正确的,用的是链表,可以换成二维数组

额,这个有点问题,我的网络分享里面貌似有播放器的源码。。。你先看看