unit1.cpp

来自「一本介绍C++Builder网络应用编程的好书。深入浅出」· C++ 代码 · 共 52 行

CPP
52
字号
//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#include <stdio.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
char* str2url(char *buf, char *str)
{
    char *t;
    int c;
    for (t = buf; *str; str++)
      {
       if ((c = *str) == ' ')
         *t++ = '+';
       else if (must_encode(c))
         {
           sprintf(t, "%%%2X", c);
           t += 3;
         }
       else
         {
           *t++ = (char)c;
         }
      }
    *t = '\0';
    return buf;
}
//---------------------------------------------------------------------------
char* url2str(char *url)
{
    int x, y;
    for (x = 0, y = 0; url[y] != '\0'; ++x, ++y)
      {
       if ((url[x] = url[y]) == '%')
         {
          url[x] = x2c(url + y + 1);
          y += 2;
         }
       else if (url[x] == '+')
         url[x] = ' ';
       }
    url[x] = '\0';
    return url;
}
//---------------------------------------------------------------------------
static char x2c(char *hex)
{
    return (char)(X2C(hex[0]) * 16 + X2C(hex[1]));
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?