C语言编程问题
思路:
1、利用ftell函数获取文件的长度(字节数)。
2、利用fread函数读取文件所有内容。
3、通过遍历字符串,进行大小写判断及转换。
下面是演示代码:(命令符不想输入,连续两次回车)
#include
#include
#include
#defineFPHC:\\test.txt
longgetFileSize(charpath[]);//获取文件长度
char*readFFile(charpath[]);//获取文件内容
intprintfStrsByCommand(char*strs,char*com);//通过命令符,打印对应格式的字符串内容
//com为命令符,如下:(缺省传NULL,程序取默认值-p)
//-p按原样打印
//-u把输入转换成大写
//-l把输入转换成小写
intmain()
{
inti=0;
char*strs=NULL,com[3]={0};
strs=readFFile(FPH);
printf(请输入打印输出样式的命令符(-p\\-u\\-l):);
while(i<2)com[i++]=getchar();
printfStrsByCommand(strs,com);
free(strs);//这个释放对本程序无意义,可删除,因为程序到此就结束了。
strs=NULL;//但是如你后面还添加其它代码,strs不再使用需这样释放。
return0;
}
intprintfStrsByCommand(char*strs,char*com)
{
charc[]=-p,*p=NULL;
if(strs)
{
if(!com)com=c;
if(!strcmp(com,-u))
{
p=strs;
while(*p)
{
if(*p>='a'&&*p<='z')
*p^=32;
p++;
}
printf(转换成大写打印输出:\n);
}
if(!strcmp(com,-l))
{
p=strs;
while(*p)
{
if(*p>='A'&&*p<='Z')
*p^=32;
p++;
}
printf(转换成小写打印输出:\n);
}
if(strcmp(com,-p)&&strcmp(com,-u)&&strcmp(com,-l))
printf(无效命令符!按-p打印输出:\n);
}
printf(%s\n,strs);
return1;
}
longgetFileSize(charpath[])
{
longflen;
FILE*fp=NULL;
fp=fopen(path,rb);
if(!fp)return-1;
fseek(fp,0L,SEEK_END);
flen=ftell(fp);
fclose(fp);
returnflen;
}
char*readFFile(charpath[])
{
longsize=0;
char*strs=NULL;
FILE*fp=NULL;
fp=fopen(path,rb);
if(!fp){fclose(fp);returnNULL;}
fseek(fp,0L,SEEK_SET);
size=getFileSize(FPH);
strs=(char*)malloc(sizeof(char)*(size+1));
if(!strs){{fclose(fp);returnNULL;}}
if(fread(strs,1,size,fp)<size)
{
free(strs);
fclose(fp);
returnNULL;
}
strs[size]=0;
fclose(fp);
returnstrs;
}
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇