易截截图软件、单文件、免安装、纯绿色、仅160KB

一个用C实现的URL解码的程序

#include <stdio.h>
#include <string.h>
/*
* decode encd with URL, the result saved to decd.
* return point to be decoded string.
* auth: baisoo email:baisoo@msn.com
*/
char *decode( char *encd, char decd[] );
int main( int argc, char *argv[] )
{
    if( argc < 2 )
    return -1;
    char decoded[80];
    decode( argv[1], decoded );
    printf( "%s\n", decoded );
    return 0;
}
char *decode( char *encd, char decd[] )
{
    if( encd == NULL )
        return (char* )0;
    int i, j=0;
    char *cd = encd;
    char p[2];
    unsigned int num;
    for( i = 0; i < strlen( cd ); i++ )
    {
        memset( p, '\0', 2 );
        if( cd[i] != '%' )
        {
            decd[j++] = cd[i];
            continue;
        }
        p[0] = cd[++i];
        p[1] = cd[++i];
        sscanf( p, "%x", &num );
        sprintf(p, "%c", num );
        decd[j++] = p[0];
    }
    decd[j] = '\0';
    return decd;
}


相关文档:

SQLite C/C++接口介绍

这篇文章是使用SQLite C/C++接口的一个概要介绍和入门指南。
由于早期的SQLite只支持5个C/C++接口,因而非常容易学习和使用,但是随着SQLite功能的增强,新的C/C++接口不断的增加进来,到现在有超过150个不同的API接口。这往往使初学者望而却步。幸运的是,大多数SQLite中的C/C++接口是专用的,因而很少被使用到。尽管有这 ......

C/C++传递二维数组

C/C++传递二维数组 - [IT资料]
//c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下:
//方法一, 形参给出第二维的长度。
#include <stdio.h>
void func(int n, char str[][5])
{
           int i;
      & ......

基于S3C2440的Linux内核移植和yaffs2文件系统制作

  基于S3C2440的Linux内核移植和yaffs2文件系统制作 收藏
Linux内核移植和根文件系统制作
第一章 移植内核... 2
1.1 Linux内核基础知识... 2
1.1.1  Linux版本... 2
1.1.2 什么是标准内核... 2
1.1.3 Linux操作系统的分类... 3
1.1.4 linux内核的选择... 4
1.2 Linux内核启动过程概述... 5
1.2.1  ......

C中如何调用C++函数

C中如何调用C++函数?
 
前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。
 
将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明), ......

c/C++内存分配—new,malloc,GlobalAlloc详解

                    
                    C++内存分配秘籍—new,malloc,GlobalAlloc详解
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号