3楼的程序大体是可行的,只是没有考虑断行把敏感词分隔开导致遗漏的问题。按这个设计思路,把修改写回原来的文件也不会难,用堆分配足够的内存读入整个文件,在内存中处理后再写回去就是了。如果内存受限,就只能用临时文件中转。不过这些手续,让楼主自己做吧。
授人以渔,不授人以鱼。
// 检测是否ASCII字符 bool inline GET::IsAscii(const wchar_t Character) { return ((Character >= 0x0020) && (Character <= 0x007E)) || ((Character >= 0xF900) && (Character <= 0xFA2D)); } // 检测是否汉字 bool inline GET::IsHz(const wchar_t Character) { return (Character >= 0x4E00) && (Character <= 0x9FA5); }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www."> <html xmlns="http://www."> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>C语言论坛 - 编程论坛</title> <link rel="shortcut icon" href="http://bbs.bccn.net/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="skin/skin1_forum.php?urlget=IE8__1__51" /> <script src="include/javascript/main.php?urlget=IE8__51" type="text/javascript"></script> </head>
<!DOCTYPE html><html><head><meta charset="UTF-8" /><meta http-equiv="Refresh" content="3600" /><title>MSN中文网:时尚生活 白领门户; (MSN官方下载)</title>