文本文件全角字符替换小工具

Author: 杨洪 Date: 1997-01-01

  在输入文本文件时,经常会遇到英文字母和一些数字,这些字符如果用“全角”形式输出,不很美观。同时,有些字符也需要按“半角”形式输出,这样在输入时,需要频繁转换字符输出方式,很不方便。为此,本人利用Turbo C2.0编制了这个替换“全角”字符的工具程序。
  附源程序如下:
  /*替换文本文件中的全角形式的字符和数字*/
  #include "stdio.h"
  main (int argc,char *argv[])
  {FILE * fp,*fp1;
  int str,i;
  if (argc<3)
  { printf ("\n错误的命令格式!!\nn");
  printf ("\n命令格式为:\n);
  printf ("命令 [要转换的文本文件名] [转换后的文本文件名]\n");
  printf ("请重新输入!\n\n");
  exit(0);}
  if ((fp=fopen (argv[1],"r"))==NULL)
  /*源文件为空或出错则退出*/
  {printf ("Cannot open %s\n",argv[1]);exit();}
  if ((fp1=fopen (argv[2],"w"))==NULL)
  /*打开目标文件为空或出错退出*/
  { printf ("Cannot open %s \n",argv[2]);exit();}
  while ((str==getc(fp))!=EOF)
  /*读取文件中字符进行判别*/
  { if (str==0xa3)
  { i=str;
  str=getc(fp);
  if ((str!=0xa1)&&(str!=0xac)&&(str!=0xba)&&(str!=0xbb)&&(str!=0xbf))
  /*去掉一些标点符号*/
  { str=str0x80; 
  putc(str,fp1);}
  else
  { putc(i,fp1);putc(str,fp1);}
  }
  else
  {  if ((str<122)&& (str>0) 
  /*判别文中的半角字符和一些控制符*/
  putc(str,fp1);
  else
  { putc(str,fp1);str=getc(fp);putc(str,fp1);}
  }}
  fclose(fp);
  fclose(fp1);
  }}