| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1992 人关注过本帖
标题:字符替换
取消只看楼主 加入收藏
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
字符替换
char a[]="\'c4\'e3\'c3\'c7\'ba\'c3";怎么将转义字符\'转成\x,变成下面数组b
char b[]="\xc4\xe3\xc3\xc7\xba\xc3";
我试过,单独写'\x'系统编译不过去,怎么处理呢?

#include <stdio.h>

void main()
{
    char a[]="\'c4\'e3\'c3\'c7\'ba\'c3";
    char b[]="\xc4\xe3\xc3\xc7\xba\xc3";
    int i;

    for(i=0;a[i];i++)
        if(a[i]=='\'')
            b[i]='\x';//error C2153: hex constants must have at least one hex digit
        else
            b[i]=a[i];
            printf("ok\n");
    printf("%s\n",b);

}
搜索更多相关主题的帖子: least 
2011-03-18 10:47
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
回复 3楼 ansic
恩,这也是个解决办法,看来要先把\'先替换成\\'在处理下。我在试试下。

帮人《---》帮己
2011-03-18 12:00
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
回复 5楼 rjsp
char b[]="\xc4\xe3\xc3\xc7\xba\xc3"; printf("%s\n",b)输出是你们好 3个汉字
char b[]="\\xc4\\xe3\\xc3\\xc7\\xba\\xc3"; printf("%s\n",b)输出是\xc4\xe3\xc3\xc7\xba\xc3
我的意思是让\xc4是一个十六进制转义字符,而不是\\xc4 4个字符
原始的字符串是\'c4\'e3\'c3\'c7\'ba\'c3,目的要转换成6个十六进制转移字符。

[ 本帖最后由 逐渐学习 于 2011-3-18 15:01 编辑 ]

帮人《---》帮己
2011-03-18 14:59
逐渐学习
Rank: 6Rank: 6
等 级:侠之大者
帖 子:113
专家分:454
注 册:2010-9-26
收藏
得分:0 
现在倒是有一个方法,就是直接把\'后面的2个字符按十六进制转成一个字符,放到数组b中
#include <stdio.h>

char Change(char h,char l)//2个字符转换成一个字符
{
    char c='\0';

    if(h>='0'&&h<='9')//0~9
        c=(h-'0')*16;
    if(h>='a'&&h<='f')//a~f
        c=(h-'a'+10)*16;

    if(l>='0'&&l<='9')
        c=c+(l-'0');
    if(l>='a'&&l<='f')
        c=c+(l-'a'+10);
    return c;
}
int main()
{
    char a[]="\'c4\'e3\'c3\'c7\'ba\'c3";
    char b[20];
    int i=0,j=0;
    while(a[i])
    {
        if(a[i]=='\'')
        {
            i++;
            continue;
        }
        else
        {
            b[j++]=Change(a[i],a[i+1]);
            i=i+2;
        }

    }
    b[j]='\0';
   
    printf("%s\n",b);
    return 0;
}

帮人《---》帮己
2011-03-18 19:11
快速回复:字符替换
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014366 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved