将C/C++程序放到网络上并不是简单的复制粘贴,大部分网站和blog是不提供代码的直接粘贴的(当然CSDN是不错的),之前在sina写博客的时候就碰到类似的问题。
C/C++抓换为HTML的关键是处理注释,关键字。当然也可以对字符串,数字进行一定的加亮处理。
1.我以前用C++写过一个程序,其实表面上是C++,只是输出用了cout和cin而已,其他的函数和思想还是C语言的。当时实现的代码加亮的结果是这样的。
这个程序的思想在main函数中体现到了,即一行一行的读取和处理文件直到文件尾。
首先是changeType()函数,这个函数主要的目的是处理掉HTML中的敏感字符,让代码能够以HTML格式来显示。举个例子来说"<"和">"这样的字符时不能直接在HTML中显示的,因为这样的字符同时也是HTML种的关键符号。HTML解决显示问题的办法是用"<"和">"来替换他们,这个函数大致就是做这样的事情。
然后是ChangeColor()函数主要是处理对于注释和关键字的加亮。注意注释是首要的,在注释中的关键字是不需要加亮的。找出C语言中的段注释和行注释并添加THML代码中的颜色代码,这里使用了很多string函数,比如比较和插入,我自己也对其中的函数做了一些小扩展,如CmpStr来更好的适应这个程序。最后是检索每一个关键字并且加亮。这里的思想是仅仅检查C语言中的特定标志来做出判断,这样做是有问题的,请看实际代码仔细想一下。
/*********************************************************************
name:C/C++程序生成网页
author:不是苹果
date:08-12-20
**********************************************************************/
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
//关键字数组
char KEYWORD[55][15] = {"auto","bool","break","case","catch","char","class","const","continue","default","delete","do","double","else","enum","explicit","extern","false","float","for","friend","goto","if","inline","int","long","mutable","namespace",
"new","operator","private","protected","public","register","return","short","signed","sizeof","static","struct","switch","template","this","true","try",
"typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","whil
System.Net.WebRequest request = System.Net.WebRequest.Create("http://la.jmw.com.cn/c.asp");
request.UseDefaultCredentials = false;
System.Net.WebResponse response = requ ......
C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。
1、http://snippets.dzone.com/tag/c/ --数以千计 ......