解决方案 »
- vc不同类之间如何发送和接受消息
- 请问各位IME高手,以下是输入法中的什么状态,如何判断该状态?
- 我要开发一个简单的数据处理软件。有些小问题还有疑问,希望高手来帮忙
- http://expert.csdn.net/Expert/topic/2513/2513109.xml?temp=.3564264(分在原帖中给)
- 怎么读出内存里的数据?
- 图片上的字符识别
- 再次提问:一个算法问题向大家请教,500分+1顿饭。
- 怎么清空Edit框,谢谢诸位
- 有谁知道LaTex文件,并且知道在那里download? 谢谢!
- 怎样从一个线程里发消息给另一个线程
- 关于SQLite在WINCE模拟器上的运行
- 怎样用ADO访问excel表格
/*
输入:QP编码字串
返回:就地解码后的输入字串的指针
*/
char * QPDecode(char *psz)
{
char *b,*e;
b=psz;
e=b;
BOOL bHead=TRUE;
while(e[0] != '\0')
{
if(bHead)
{
if(e[0] != '=' || e[1] != '?') break;
e+=2;
e=stristr(e,"?q?");
if(e == NULL) break;
e+=3;
bHead=FALSE;
}
if(e[0] == '=')
{
b[0] = (e[1]>='A'?((e[1] & 0xDF)-'A')+10 : (e[1]-'0'));
b[0] *= 16;
b[0] += (e[2]>='A' ? ((e[2] & 0xDF)-'A')+10 : (e[2]-'0'));
b++;
e+=3;
continue;
}
if(e[0] == '?')
{
if(e[1] == '=')
{
e+=2;
while(e[0]=='\r' || e[0]=='\n' || e[0]==' ' || e[0]=='\t') e++;
bHead = TRUE;
}
continue;
}
if(e[0]=='\r' || e[0]=='\n' || e[0]=='\t')
{
e++;
continue;
} b[0]=e[0];
b++;
e++;
}
b[0]='\0'; return psz;}
sscanf(pSrc, "=%02X", pDst);
sscanf函数在使用时容易导致堆栈混乱,得找个办法把这条语句替换掉