当前位置: 代码迷 >> 其他开发语言 >> 求C里面 全角半角转换函数,该如何解决
  详细解决方案

求C里面 全角半角转换函数,该如何解决

热度:5265   发布时间:2013-02-26 00:00:00.0
求C里面 全角半角转换函数
求C里面 全角半角转换函数

------解决方案--------------------------------------------------------
我在别处看了,希望对你有帮助。
第 3 区 〖 符号、字母 〗
┏━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ A3 ┃ 0 1 2 3 4 5 6 7 8 9 ┃
┣━━╋━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃ 030┃ ! " # ¥ % & ' ( ) ┃
┃ 031┃ * + , - . / 0 1 2 3 ┃
┃ 032┃ 4 5 6 7 8 9 : ; < = ┃
┃ 033┃ > ? @ A B C D E F G ┃
┃ 034┃ H I J K L M N O P Q ┃
┃ 035┃ R S T U V W X Y Z [ ┃
┃ 036┃ \ ] ^ _ ` a b c d e ┃
┃ 037┃ f g h i j k l m n o ┃
┃ 038┃ p q r s t u v w x y ┃
┃ 039┃ z { | }  ̄ ┃
┗━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━┛
可以归结为第3区的全角字到相应半角的转换
以下是c语言的一种实现:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>


char qj_bj( char *qj );

int main(int argc,char**argv)
{
int i ;
char str[3];
for ( i = 1; i <= 93 ; i++){
sprintf(str,"%c%c",3+0xa0,i+0xa0);
printf( "File %s Line %d [%s] = [%c]\n",__FILE__,__LINE__,str,
qj_bj(str));
}
return 0;
}
char qj_bj( char *qj )
{
char ch ;

if ( strncmp(qj,"!",2) >=0 && strncmp( qj,"}",2) <= 0 ){
/* 0301 - 0393 */
ch = qj[1]-0xa0+' ';
return ch;
}
else return '\0';
}
  相关解决方案