linux下C语言实现对文本内字符排序。
发布网友
发布时间:2022-05-10 09:20
我来回答
共1个回答
热心网友
时间:2024-02-27 14:20
对于通用的程序来说, 你无法预先了解文件的大小.需要首先获取文件大小, 使用动态分配.
int getFileSize(char * strFileName)
{
FILE * fp = fopen(strFileName, "r");
fseek(fp, 0L, SEEK_END);
int size = ftell(fp);
fclose(fp);
return size;
}
int asciiTank(int fileszie,char * strFileName)
{
char *p;
char s;
int cnt=0;
p = (char *)malloc(filesize * sizeof(char));
if (NULL == p) exit (1);
memset(p,0,filesize);
FILE * fp = fopen(strFileName, "r");
while(!feof(fp))
{
if(1 == fread(&s,sizeof(char),1,fp))
{
*(p+cnt) = s;
cnt+=1;
}
}
// 数组的排序就不写了, 自行查阅数据结构的书籍
}
int main(int argc,char *argv[])
{
int size;
size = getFileSize(argv[1]);
asciiTank(szie,argv[1]);
return 1;
}