用这一段试试
  char * pSource = ....; //指向source的指针
  cahr * pResult = ....; //指向result的指针,自已填吧
  while (* pSource)
  {
   if ( *(WORD *)pSource == '\\\\')
   {
          * pResult++ = '\';
        pSource +=2;
    }
   else
         * pResult++ =  * pSource++;
  }
  * pResult = NULL;

解决方案 »

  1.   

    不对啊,我不是要这种结果的。
    以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的形式。可是,取出后如何转换为以上格式呢?
      

  2.   

    有点乱,你将就着看吧!   必要的参数自己修改一下:
    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; }
      

  3.   

    wjyasd,好像也只能这样的。
    我一直在想用sprintf 或者用 vsprintf类似的函数来完成呢。
      

  4.   

    能用就行了……  ^&^