主题:求改字符替换的一段小程序
代码如下:
void unencode(char *src, char *last, char *dest)
{
for(; src != last; src++, dest++)
{
if(*src == '+')
*dest = ' ';
else if(*src == '%')
{
int code;
if(sscanf(src+1, "%2s", &code) != 1) code = '?';
*dest = code;
src += 2;
}
else {
*dest = *src;
*dest = ' ';
*++dest = ' ';
}
}
}
此代码功能
1. 表单中每个每个字段用字段名后跟等号,再接上上这个字段的值来表示,每个字段之间的内容用&连结;
2. 所有的空格符号用加号代替,所以在编码码段中出现空格是非法的;
3. 特殊的字符比如标点符号,和一些有特定意义的字符如“+”,用百分号后跟其对应的ACSII码值来表示。
void unencode(char *src, char *last, char *dest)
{
for(; src != last; src++, dest++)
{
if(*src == '+')
*dest = ' ';
else if(*src == '%')
{
int code;
if(sscanf(src+1, "%2s", &code) != 1) code = '?';
*dest = code;
src += 2;
}
else {
*dest = *src;
*dest = ' ';
*++dest = ' ';
}
}
}
此代码功能
1. 表单中每个每个字段用字段名后跟等号,再接上上这个字段的值来表示,每个字段之间的内容用&连结;
2. 所有的空格符号用加号代替,所以在编码码段中出现空格是非法的;
3. 特殊的字符比如标点符号,和一些有特定意义的字符如“+”,用百分号后跟其对应的ACSII码值来表示。