欢迎光临
我们一直在努力

全半角转换是什么意思,c语言全角半角

int full2half(char *str_half, int len_half, char *str_full, int len_full, int mode )
{
? ? int i = 0;
? ? int j = 0;
? ??
? ? if ( mode == 0 )/*半角转全wqdbm/
? ? {
? ? ? ? i=0;
? ? ? ? j=0;
? ? ? ? while(‘\0’ != str_half[i])
? ? ? ? {
? ? ? ? ? ? if(j>=len_full)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return -1; /*全角字符缓冲区空间不够*/
? ? ? ? ? ? }
? ? ? ? ? ? /*控制符0x00-0x1E(0-31)*/
? ? ? ? ? ? if(0x00<=(str_half[i]&0xff) && 0x1F>=(str_half[i]&0xff))
? ? ? ? ? ? {
? ? ? ? ? ? /*换行、回车*/
? ? ? ? ? ? ? ? if(0x0A==(str_half[i]&0xff)||0x0D==(str_half[i]&0xff))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? str_full[j]=str_half[i];
? ? ? ? ? ? ? ? ? ? j++;
? ? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? 香港vps ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? /*半角空qsdxt/
? ? ? ? ? ? if(str_half[i] == 0x20)?
? ? ? ? ? ? {?
? ? ? ? ? ? ? ? str_full[j] = 0xA1;
? ? ? ? ? ? ? ? str_full[j+1] = 0xA1;
? ? ? ? ? ? ? ? j+=2;?
? ? ? ? ? ? ? ? i+=1;
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? /*半角字糟糕的发夹/
? ? ? ? ? ? if(str_half[i]>=0x20 && str_half[i]<=0x7E)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? str_full[j] = 0xA3;
? ? ? ? ? ? ? ? str_full[j+1] = str_half[i]+0x80;
? ? ? ? ? ? ? ? j+=2;?
? ? ? ? ? ? ? ? i+=1;
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ?/*全角字符,汉字,原样拷dddds/
? ? ? ? ? ?else
? ? ? ? ? ?{
? ? ? ? ? ? ? if((str_half[i]&0xff) >= 0xA1 && (str_half[i]&0xff) <= 0xFE)
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? str_full[j] = str_half[i];
? ? ? ? ? ? ? ? ? str_full[j+1] = str_half[i+1]; ? ? ? ? ?
? ? ? ? ? ? ? ? ? ?j+=2;
? ? ? ? ? ? ? ? ? ?i+=2; ? ? ? ? ? ??
? ? ? ? ? ? ? }
? ? ? ? ? ? ? else
? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? str_full[j] = str_half[i];
? ? ? ? ? ? ? ? ? j++;
? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?}
? ? ? ? ? ??
? ? ? ? }
? ? }
? ? else if ( mode == 1 )/*全角转半wqdbm/
? ? { ? ? ??
? ? ? ? i=0;
? ? ? ? j=0;
? ? ? ? while(‘\0’ != str_full[i])
? ? ? ? {
? ? ? ? ? ? if(j>=len_half)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return -1; /*半角字符缓冲区空间不够*/
? ? ? ? ? ? }
? ? ? ? ? ? /*控制符0x00-0x1E(0-31)*/
? ? ? ? ? ? if(0x00<=(str_full[i]&0xff) && 0x1F>=(str_full[i]&0xff))
? ? ? ? ? ? {
? ? ? ? ? ? /*换行、回车*/
? ? ? ? ? ? ? ? if(0x0A==(str_full[i]&0xff)||0x0D==(str_full[i]&0xff))
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? str_half[j]=str_full[i];
? ? ? ? ? ? ? ? ? ? j++;
? ? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? /*半角字符0x20-0x7E(32-126)*/
? ? ? ? ? ? if(0x20<=(str_full[i]&0xff) && 0x7E>=(str_full[i]&0xff))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? str_half[j]=str_full[i];
? ? ? ? ? ? ? ? j++;
? ? ? ? ? ? ? ? i++;
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ?
? ? ? ? ? ? /*全角空qsdxt/
? ? ? ? ? ? if((str_full[i]&0xff) == 0xA1 && (str_full[i+1]&0xff) == 0xA1)?
? ? ? ? ? ? {?
? ? ? ? ? ? ? ? str_half[j] = 0x20;
? ? ? ? ? ? ? ? j++;?
? ? ? ? ? ? ? ? i+=2;
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? /*汉字+全角字糟糕的发夹/
? ? ? ? ? ? else if((str_full[i]&0xff) >= 0xA1 && (str_full[i]&0xff) <= 0xFE && (str_full[i+1]&0xff) >= 0xA1 && (str_full[i+1]&0xff) <= 0xFE) ? ?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? /*全角字糟糕的发夹/
? ? ? ? ? ? ? ? if((str_full[i]&0xff) == 0xA3)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ?str_half[j] = str_full[i+1] – 0x80;
? ? ? ? ? ? ? ? ?j++;
? ? ? ? ? ? ? ? ?i+=2;
? ? ? ? ? ? ? ? ?continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? /*汉hsddy/
? ? ? ? ? ? ? ? else
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? str_half[j] = str_full[i];
? ? ? ? ? ? ? ? ? ?str_half[j+1] = str_full[i+1]; ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? j+=2;
? ? ? ? ? ? ? ? ? ? i+=2;
? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ?else
? ? ? ? ? ?{
? ? ? ? ? ? ? ?str_half[j] = str_full[i]; ? ? ? ??
? ? ? ? ? ? ? ?j++;
? ? ? ? ? ? ? ?i++;?
? ? ? ? ? ? ? ?continue; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ?}
? ? ? ? }?
? ? }
? ? else
? ? {
? ? ? ? return -2; /*转换模式选择错误*/
? ? }
? ? return 0;
}

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。