重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

c语言全角转换半角函数 c++弧度转角度函数

如何在MFC中实现 全角字符转换成半角字符

1.使用API函数LCMapString实现。

成都创新互联服务紧随时代发展步伐,进行技术革新和技术进步,经过10年的发展和积累,已经汇集了一批资深网站策划师、设计师、专业的网站实施团队以及高素质售后服务人员,并且完全形成了一套成熟的业务流程,能够完全依照客户要求对网站进行成都网站制作、做网站、建设、维护、更新和改版,实现客户网站对外宣传展示的首要目的,并为客户企业品牌互联网化提供全面的解决方案。

char * pshort = new char[512] ;

char * plong = new char[512] ;

memset( pshort , 0 , 512 ) ;

memset( plong , 0 , 512 ) ;

plong = "helloworld";

DWORD lcid = LANG_SYSTEM_DEFAULT ;

LCMapString( lcid ,LCMAP_HALFWIDTH , plong , 20 ,pshort , 10 ) ;

pshort则为半角字符,如果将参数换位LCMAP_FULLWIDTH,可将全角字符转换为半角字符。

2.使用计算

对于ascii码在0x20到0x7d之间的,也就是键盘上正常的字符(除了~之外)都有一个规律,比如空格的半角为0x20,而全角是0xa0a3,低位是固定的都是0xa3,即全角字符的低位上固定为0xa3,并且高位上固定大0x80;可以使用以下计算:

//全角转化为半角,输入字符中可以有半角,但是字符中的所有全角均认为是ASCII码所对应的全角字符

void FullToHalf(CString strFull,CString strHalf)

{

strHalf="";

const char *pszFull=strFull.GetBuffer(strFull.GetLength());

int npszFull=strlen(pszFull);

char* pszHalf=new char[npszFull+1];

memset(pszHalf,0,npszFull+1);

int iHalf=0,iFull=0;

for(int iFull=0;iFullnpszFull;)

{

if((BYTE)(pszFull[iFull])128)//半角

{

memcpy(pszHalf+iHalf,pszFull+iFull,1);

iHalf++;

iFull++;

}

else//全角

{

BYTE bTemp=BYTE(pszFull[iFull+1]);

char cTemp=bTemp-128;

memcpy(pszHalf+iHalf,cTemp,1);

iHalf++;

iFull++;

iFull++;

}

}

strHalf.Format("%s",pszHalf);

delete[] pszHalf;

}

//半角转化为全角,输入字符中可以有全角

void HalfToFull(CString strHalf,CString strFull)

{

strFull="";

const char *pszHalf=strHalf.GetBuffer(strHalf.GetLength());

int npszHalf=strlen(pszHalf);

char* pszFull=new char[npszHalf+npszHalf+1];

memset(pszFull,0,npszHalf+npszHalf+1);

int iHalf=0,iFull=0;

for(int iHalf=0;iHalfnpszHalf;)

{

if((BYTE)(pszHalf[iHalf])128)//半角

{

BYTE bByte[2];

bByte[0]=160+3;

bByte[1]=128+(BYTE)pszHalf[iHalf];

memcpy(pszFull+iFull,bByte,2);

iHalf++;

iFull++;

iFull++;

}

else//全角

{

memcpy(pszFull+iFull,pszHalf+iHalf,2);

iHalf++;

iHalf++;

iFull++;

iFull++;

}

}

strFull.Format("%s",pszFull);

delete[] pszFull;

}

如何将输入的全角数字转换成半角并保存到数据库(pb)

//函数功能:将字符串中的半角字符转换成全角字符

//入口参数:in_str——准备进行转换的半角字符串 类型string

//返回值: 转换成功的全角字符串 类型string

string c_return=""

long l0,l1,l2,l3,l4,i,c_leng,l_asc

i=1

c_leng=len(in_str)

do while i=c_leng

l_asc=asc(in_str)

if l_asc=128 then

if l_asc=33 and l_asc=126 then

l1=int((l_asc+41856)/(16*16*16))

l0=mod((l_asc+41856),(16*16*16))

l2=int(l0/(16*16))

l0=mod(l0,(16*16))

l3=int(l0/16)

l4=mod(l0,16)

c_return=c_return+char(l1*16+l2)+char(l3*16+l4)

else

c_return=c_return+left(in_str,1)

end if

in_str=replace(in_str,1,1,"")

i=i+1

else

c_return=c_return+left(in_str,2)

in_str=replace(in_str,1,2,"")

i=i+2

end if

loop

return c_return

怎么实现全角字符转换到半角字符

全角转半角方法如下:

NSString *string;

NSMutableString *convertedString = [string mutableCopy];

CFStringTransform((CFMutableStringRef)convertedString, NULL, kCFStringTransformFullwidthHalfwidth, false);

NSLong(@"ddc:%@",convertString);

[convertedString release];

半角转全角只需要把kCFStringTransformFullwidthHalfwidth换成kCFStringTransformHiraganaKatakana即可。

64位的全角到半角的c代码

全角和半角指不同格式的英文字母。 半角格式的英文字母相等于英语状态下输入的英文原始信息。全角格式英文字母和半角英文相比,在编码上不同,外观通常也不同。全角字母采用中文方式的编码,外观上更类似汉字。 可以把输入法删除在从新安装 或按shift+空格切换

有哪些办法能批量将全角英文字符换成半角?

在复件中,通过查找[a-zA-Z^32,.](勾选使用通配符),替换掉半角字符,只保留全角字符。如果还有其他半角标点,例如?、*、(、)、[、]等的代码分别加上引义符,改为\?、\*、\(、\)、\[、\],放在方括号内一并替换。将剩余的全角字符替换为每段一个字符。查找:?,替换为^p,不必勾使用通配符。全选,在表格菜单点排序,按拼音,将重复的删除。查找:(^13[!^13]@^13)\1,替换为:\1 注:勾使用通配符。剩余的字符,逐一查出Unicode 码我不知道有没有快速方法,最笨的方法是逐一选中,在菜单点插入-符号,复制字符代码栏内的十六进制码,再用计算器(在查看菜单中勾“程序员”)将复制的代码转为十进制码,查完不要点插入按钮,关闭对话框。将复制的代码填在原字符后面。例如:ω,字符代码为03C9,Unicode 码为969,则记为ω=969。根据下面提供的宏以及上面查出的代码,填入Unicode 码和目标字符。


本文名称:c语言全角转换半角函数 c++弧度转角度函数
分享地址:http://cqcxhl.com/article/docggde.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP