ful2hlf.c

来自「将文本中的全角转变为半角」· C语言 代码 · 共 53 行

C
53
字号
/* convert full angle HZ to half angle HZ */#include <stdio.h>#include <stdlib.h>#include <string.h>#include <ctype.h>#define MAXLINE 65536 int isBJ(unsigned char ch)   /* half angle ASCII character */{    return !(ch & 0x80);}int main(int argc, char *argv[]){  int i;  unsigned char line[MAXLINE];  int len;  FILE *fp;  unsigned char BFH[3] = "%";  unsigned char DOT[3] = ".";  if (argc != 2) {    printf("Usage: %s all.txt\n", argv[0]);    exit(-1);  }  fp = fopen(argv[1], "r");  if (fp == NULL) {printf("Cannot open: %s\n", argv[1]); return -1;}  while( fscanf(fp, "%s", line) != EOF )  {	  len = strlen(line);	  for (i = 0; i < len; i++) {		  if(!isBJ(line[i])) {			  if (line[i] == 0xa3 && line[i+1] >= 0xb0 && line[i+1] <= 0xb9) /* digital 0-9 */				  printf("%c", line[i+1] & 0x7f);			  else if(line[i] == BFH[0] && line[i+1] == BFH[1]) /* % */				  printf("%%");			  else if(line[i] == DOT[0] && line[i+1] == DOT[1]) /* . */				  printf(".");			  else 				  printf("%c%c", line[i], line[i+1]);			  i++;		  }		  else			  printf("%c", line[i]);	  }	  printf("\n");  }  return 0; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?