免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1417 | 回复: 4
打印 上一主题 下一主题

[C] 用C语言写CGI程序--初学者交流区 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-24 00:50 |只看该作者 |倒序浏览
有熟知这方面技术的请不吝剔教!

论坛徽章:
0
2 [报告]
发表于 2005-09-24 01:05 |只看该作者

用C语言写CGI程序--初学者交流区

  1. /*C字符串替换函数将str1替换成str2
  2. 调用成功返回指向被替换后新字符串的指针失败返回NULL
  3. 调用之后用free()释放*/
  4. char *strrep(char *str,char *str1,char *str2)
  5. {
  6.         char *s;
  7.         unsigned long int len;
  8.         register unsigned long int i=0;
  9.         char *temp;
  10.                temp=str;
  11.                if (str==NULL||str1==NULL||str2==NULL)
  12.         return NULL;
  13.         while (strstr(temp,str1)!=NULL){
  14.             temp=strstr(temp,str1)+strlen(str1);
  15.                 i++;}
  16.         len=(strlen(temp)-strlen(str1)*i+strlen(str2)*i)*sizeof(char);
  17.         s=(char *)malloc(len);
  18.         if (s!=NULL){
  19.         s="s";
  20.         while (strstr(str,str1)!=NULL)
  21.                 {
  22.                 s=strncat(s,str,(strstr(str,str1)-str));
  23.                 s=strcat(s,str2);
  24.                 str=strstr(str,str1)+strlen(str1);}
  25.     s=strcat(s,str);
  26.     s++;
  27.     return(s);}
  28.         else{
  29.                 return NULL;}
  30. }
复制代码

论坛徽章:
0
3 [报告]
发表于 2005-09-24 01:08 |只看该作者

用C语言写CGI程序--初学者交流区

url编码的问题谁能给我好好讲一讲啊
GB2312中文会被编成国标内码   繁体BIG5怎么编码的  还有UTF-8是如何编码的   谁用C写的有这方面的编码和解释的函数啊?

论坛徽章:
0
4 [报告]
发表于 2005-09-25 21:34 |只看该作者

用C语言写CGI程序--初学者交流区

还原%后的数据返回还原后的字符串的指针

  1. /*适用于解码双字节编码的url不适用于UTF-8编码*/
  2. char *strurlGB(char *str)
  3. {
  4.             char *d="0123456789ABCDEF";
  5.                 char *p;
  6.                 register unsigned int i;
  7.                 p=strchr(str,'%');
  8.                 while(p!=NULL){
  9.                                     if (islower(p[1])) p[1]=toupper(p[1]);
  10.                                     if (islower(p[2])) p[2]=toupper(p[2]);
  11.                     p[0]=16*(strchr(d,p[1])-strchr(d,'0'))+(strchr(d,p[2])-strchr(d,'0'));
  12.                         for(i=1;i<=strlen(p)-1;i++){
  13.                         p[i]=p[i+2];}
  14.                         p=strchr(p+1,'%');}
  15.                 return(str);
  16.         }
复制代码


关于URL编码问题请大家多指教!

论坛徽章:
0
5 [报告]
发表于 2005-09-25 21:54 |只看该作者

用C语言写CGI程序--初学者交流区

c&cgi 提取串和stdin中的数据很重要,通过提取格式控制可以有效减少操作

"%[]"符号用于声明字符串,它比%s更具体,可以用于设置读取的样式,例如:
"%[A-Z]"只读取大字字母,遇到其它字符就结束读取.又如:"%[^#]"表示一直读到"#"为止,"^"代表一直读到某一字符时结束读取.再如:"%15[^&]"表示读取15个字符到出现"&"时为止.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP