htmlencode和htmldecode,在线等待,比较急

chenccj 2008-12-04 10:14:29
在vc中如何实现象asp中的htmlencode和htmldecode,就是编码解码,请多帮忙。
...全文
130 点赞 收藏 2
写回复
2 条回复
CodeProject-Jerry 2008年12月11日

#include <algorithm>
#include <iostream>
#include <string>

#define array_length(array) (sizeof (array) / sizeof (array)[0])

namespace Raye {
using namespace std;

struct HTMLReplace {
string match;
string replace;
} codes[] = {
{"&", "&"},
{"<", "<"},
{">", ">"}
};

string HTMLEncode( const string& s )
{
string rs = s;

// Replace each matching token in turn
for ( size_t i = 0; i < array_length( codes ); i++ ) {
// Find the first match
const string& match = codes[i].match;
const string& repl = codes[i].replace;
string::size_type start = rs.find_first_of( match );

// Replace all matches
while ( start != string::npos ) {
rs.replace( start, match.size(), repl );
// Be sure to jump forward by the replacement length
start = rs.find_first_of( match, start + repl.size() );
}
}

return rs;
}
}

int main()
{
using namespace std;

cout << Raye::HTMLEncode( "template <class T> void foo( const string& bar );" ) << '\n';

return 0;
}
回复 点赞
littlepboy 2008年12月10日
用CString或者string,比如CString:

void HtmlEncode(CString &sz)
{
sz.Replace("<", "<");
sz.Replace(">", ">");
...
}

效果:
输入:"The image tag: <img>",输出:"The image tag: <img>"
其他编码方式类似实现,解码也是类似实现
回复 点赞
发动态
发帖子
HTML/XML
创建于2007-09-28

2557

社区成员

8071

社区内容

VC/MFC HTML/XML
社区公告
暂无公告