一个用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;
}
相关文档:
Delphi 与 C/C++ 数据类型对照表
Delphi数据类型C/C++
ShorInt
8位有符号整数
char
Byte
8位无符号整数
BYTE,unsigned short
SmallInt
16位有符号整数
short
Word
16位无符号整数
unsigned short
Integer,LongInt
32位有符号整数
int,long
Cardinal,LongWord/DWORD
32位无符号整数
unsigned long
Int6 ......
C中如何调用C++函数?
前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。
将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明), ......
C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。
编译的完整过程:C源程序-->预编译处理(.c)-- ......
函数调用栈的实现。可用于实现简单的脚本解释器。
声明:
#pragma once
const int BUFFERSIZE = 1024;
const int growfactor = 2;
// this stack is used as call stack.
class TStack{
private:
size_t size; // the stack length
size_t pos; // the stack top position
cha ......
C++内存分配秘籍—new,malloc,GlobalAlloc详解
......