欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c的urldecode

程序员文章站 2022-06-03 18:11:09
...
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void encodeurl(){
    int c;
    char *hex = "0123456789abcdef";
    while( (c = getchar()) != EOF ){
        if( ('a' <= c && c <= 'z')
        || ('A' <= c && c <= 'Z')
        || ('0' <= c && c <= '9') ){
            putchar(c);
        } else {
            putchar('%');
            putchar(hex[c >> 4]);
            putchar(hex[c & 15]);
        }
    }
}
void hao_urldecode(char *dest, const char *src)
{
    const char *p = src;
    char code[3] = {0};
    unsigned long ascii = 0;
    char *end = NULL;

    while(*p)
    {
        if(*p == '%')
        {
            memcpy(code, ++p, 2);
            ascii = strtoul(code, &end, 16);
            *dest++ = (char)ascii;
            p += 2;
        }
        else
            *dest++ = *p++;
    }
}

int main()
{
    char in[] = "ram%40d%20omain.tld";
    char out[sizeof in] = {0};
    hao_urldecode(out, in);
    printf("in == %s\nout == %s\n", in, out);
    return 0;
}
相关标签: c urldecode