cgi.cpp
来自「这是一些c++例程」· C++ 代码 · 共 54 行
CPP
54 行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int htoi(char *);
void main()
{
int i,n;
char c;
printf ("Contenttype: text/plain\n\n");
n=0;
if (getenv("CONTENT-LENGTH"))/*检查是否存在环境变量CONTENT-LENGTH*/
n=atoi(getenv("CONTENT-LENGTH"));/*使用环境变量CONTENT-LENGTH*/
for (i=0; i<n;i++){
int is_eq=0;
c=getchar();
switch (c){
case '&':/* 一个Form变量值的结束*/
c='\n';
break;
case '+':/*遇到空格符*/
c=' ';/*转换为空格*/
break;
case '%':{/* 当遇到用其十六进制ASCII码值表示的特殊字符时*/
char s[3];
s[0]=getchar();
s[1]=getchar();
s[2]=0;
c=htoi(s);
i+=2;
}
break;
case '=':/* 当一个Form变量名字的结束时*/
c=':';
is_eq=1;
break;
};
putchar(c);/* 将输出传送给Web服务器*/
if (is_eq) putchar(' ');
}
putchar ('\n');
fflush(stdout);
}
/*将16进制的字串转换为整数类型*/
int htoi(char *s)
{
char * digits="0123456789ABCDEF";
if (islower (s[0])) s[0]=toupper(s[0]);
if (islower (s[1])) s[1]=toupper(s[1]);
return 16 * (strchr(digits, s[0]) -strchr(digits,'0')
)
+(strchr(digits,s[1])-strchr(digits,'0'));
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?