• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

简单的问题,从文本文件中得到相应格式的字符串

SmartHeart 2001-07-26 11:45:14
如何把类似下列格式的字符串
"\\033ABCD\\x12"
转换为以下格式的字符串
"\x1bABCD\x12"

即:
char source[] = "\\033ABCD\\x12";

char result[] = "\033ABCD\x12";

如何从source转换到result????
...全文
116 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
SmartHeart 2001-07-28
结贴
回复
Szhb 2001-07-27
用CString类的Replace方法
回复
Semigod 2001-07-27
用这一段试试
char * pSource = ....; //指向source的指针
cahr * pResult = ....; //指向result的指针,自已填吧
while (* pSource)
{
if ( *(WORD *)pSource == '\\\\')
{
* pResult++ = '\';
pSource +=2;
}
else
* pResult++ = * pSource++;
}
* pResult = NULL;
回复
wjyasd 2001-07-27
能用就行了…… ^&^
回复
SmartHeart 2001-07-27
临睡前up一下
回复
SmartHeart 2001-07-27
wjyasd,好像也只能这样的。
我一直在想用sprintf 或者用 vsprintf类似的函数来完成呢。
回复
wjyasd 2001-07-27
有点乱,你将就着看吧! 必要的参数自己修改一下:


char source[] = "\\033ABCD\\x12";
char result[] = "\033ABCD\x12";

char tmp[100];
char t1[4];
int cur=0;
int t=0;
int len=(int)strlen(source);

memset(t1,'\0',4);
for(int i=0;i<=len-1; )
{
if(source[i]=='\\' && source[i+1]=='0')
{
memset(t1,'\0',4);
strncpy(t1,&source[i+1],3);
sscanf(t1,"%i",&t);
tmp[cur++]=t;
i=i+4;
}
else if(source[i]=='\\' && source[i+1]=='x')
{
memset(t1,'\0',4);
strncpy(t1,&source[i+2],2);
sscanf(t1,"%x",&t);
tmp[cur++]=t;
i=i+3;
}
else
{
tmp[cur++]=source[i++];
}
if(i==len-1)
break;

}
回复
wjyasd 2001-07-27
1 读如1个字符
2 判断是否为 '\',否则执行1 读入下一个字符
3 读入后一个字符,判断是否 '0' , 不是的话 1
4 转化一个8进制的数到16进制
5 循环,到结束
回复
wjyasd 2001-07-27
让我想想!
回复
SmartHeart 2001-07-27
up
回复
SmartHeart 2001-07-27
up
回复
SmartHeart 2001-07-27
不对啊,我不是要这种结果的。
以16进制表示:
source = 0x5c 0x30 0x33 0x33 0x41 0x42 0x43 0x44 0x5c 0x77 0x31 0x32
result = 0x1b 0x41 0x42 0x43 0x44 0x12

也就是说,如以下:
memcpy(result,"\033ABCD\x12",5);
这样的话,结果是上述结果。现在我想把第二个参数从文本文件中取出,文本文件中以gets的形式。可是,取出后如何转换为以上格式呢?
回复
wjyasd 2001-07-27
gz!
回复
SmartHeart 2001-07-27
Szhb,怎么用呢?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-26 11:45
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……