倒跟我的需求一样, 关注!
http://community.csdn.net/Expert/TopicView1.asp?id=4998325

解决方案 »

  1.   

    #include <stdio.h>
    int ExpressionToString( // 字符表达式转化成字符串
      char *mExpression, // [in]输入表达式
      char *nDest // [out]输出缓冲区,允许该参数为NULL计算输出长度用
    ) // 返回填写的长度,如果表达式出现错误则返回-1
    {
            /* TODO : 填写代码 */
            int I = 0;
            char vHex[3];
            int vNumber;
            while (mExpression != NULL && *mExpression != NULL)
            {
                    if (0 == memcmp(mExpression, "\\x", 2))
                    {
                            mExpression += 2;
                            strncpy(vHex, mExpression, 2);
                            vHex[2] = NULL;
                            sscanf(vHex, "%x", &vNumber); // 十六进制转化为数字
                            nDest[I] = vNumber;
                            mExpression += 2;
                    } else if (0 == memcmp(mExpression, "\\\\", 2))
                    {
                            mExpression += 2;
                            nDest[I] = '\\';
                    } else
                    {
                            nDest[I] = *mExpression;
                            mExpression++;
                    }
                    I++;
            }
            nDest[I] = NULL;
            return I;
    }