北京移动套餐资费 最新:求vc高手,帮我编一个把一篇文章按20个字一组切割的程序
还有要注意可能出现的各种情况:标点等谢谢了!
谢谢我收到了,有没有调试实现的,发给我邮箱好吗?
fangdaniang@yahoo.com.cn
gb10830 和gb2312 编码规则竟然不兼容 可恨
gbk的资料没找到不过觉得它和gb2312是兼容的,但我不能保证.
gb10830 和gb2312分别写了一个分割器 请笑纳;
/********* gb2312 *********/
#include <stdio.h>
#include <string.h>
#define CUT 20 //每几个汉字开始分割
#define MAXPATH 256*9+1 //最大支持8层文件夹深度的文件路径
int main (int n,char * u[] ){
if (n<4)
{printf ("命令行错误:\n %s 输入文件 输出文件前缀 输出文件后缀\n文件名可以包含路径.",u[0]);
return 0;
}
int mych=0,named=0,num=0,so=0;
char buf[CUT*2+2], name[MAXPATH];
FILE *in,*out;
in= fopen(u[1],"r");
printf ("任务进行中\n");
while((mych=fgetc(in))!=EOF)
{
buf[num++]=mych;
if (mych>0x80 )
buf[num++]=fgetc(in);
so++;
if (so==20)
{
sprintf (name,"%s%d.%s\0",u[2],++named,u[3]);
out=fopen(name,"a+");
fwrite(buf,1,num,out);
fclose (out);
num=0;
so=0;
}
}/*while*/
if (num)
{ sprintf (name,"%s%d.%s\0",u[2],++named,u[3]);
out=fopen(name,"a+");
fwrite(buf,1,num,out);
fclose (out);
}
fclose (in);
printf ("\n共输出 %d 个文件,请查收.\n",named);
}
/********* gb18030 *********/
#include <stdio.h>
#include <string.h>
#define CUT 20 //每几个汉字开始分割
#define MAXPATH 256*9+1 //最大支持8层文件夹深度的文件路径
int main (int n,char * u[] ){
if (n<4)
{printf ("命令行错误:\n %s 输入文件 输出文件前缀 输出文件后缀\n文件名可以包含路径.",u[0]);
return 0;
}
int mych=0,named=0,num=0,so=0;
char buf[CUT*4+2], name[MAXPATH];
FILE *in,*out;
in= fopen(u[1],"r");
printf ("任务进行中\n");
while((mych=fgetc(in))!=EOF)
{
buf[num++]=mych;
if (mych>0x80 )
{
if ((buf[num++]=fgetc(in))< 0x40 )
{buf[num++]=fgetc(in);
buf[num++]=fgetc(in);
}
}
so++;
if (so==20)
{
sprintf (name,"%s%d.%s\0",u[2],++named,u[3]);
out=fopen(name,"a+");
fwrite(buf,1,num,out);
fclose (out);
num=0;
so=0;
}
}/*while*/
if (num)
{ sprintf (name,"%s%d.%s\0",u[2],++named,u[3]);
out=fopen(name,"a+");
fwrite(buf,1,num,out);
fclose (out);
}
fclose (in);
printf ("\n共输出 %d 个文件,请查收.\n",named);
}