htmlspecialchars - C++

Programovacie jazyky, rady, poradňa...
javo
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 15 sep 2006, 21:30
Kontaktovať používateľa:

htmlspecialchars - C++

Príspevok od používateľa javo »

Zdravim,
potrebujem v C++ urobit nieco v style htmlspecialchars,
urobil som teda nieco taketo

Kód: Vybrať všetko

string htmlspecialchars (string str) {

	string replaceString[] = {"&","<",">",""","'"
	};
	
	string searchString[] = {"&","<",">","\"","'"
	};
	for(int j = 0; j < 5; j++) {
    string::size_type pos = 0;
    while ( (pos = str.find(searchString[j], pos)) != string::npos ) {
        str.replace( pos, searchString[j].size(), replaceString[j] );
        pos++;
    }
    
  	}

	return str;
}
mozno to neni idealne riesenie ale takto som to nejako dal dokopy,
problem ale je ze ked mam retazec a v nom (") bez lomitka (\") tak ho nenahradi, nemate nejake navrhy ako by sa to dalo vyriesit? diki
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

ja neviem ale podla mna to co mas funguje dobre ... som si dal namahu to testnut ...

Kód: Vybrať všetko

#include <iostream>
#include <string>
using namespace std;

string htmlspecialchars (string str) 
{ 
	string replaceString[] = {"&","<",">",""","'"}; 
    
	string searchString[] = {"&","<",">","\"","'"};

	for(int j = 0; j < 5; j++) 
	{ 
		string::size_type pos = 0; 
		while ( (pos = str.find(searchString[j], pos)) != string::npos ) 
		{ 
			str.replace( pos, searchString[j].size(), replaceString[j] ); 
			pos++; 
		}
	} 

	return str; 
}

int main() 
{
	string s = "<a href=\"hello.html?a=a&b=b\">aaa</a>";
	cout << s << '\n';
	cout << htmlspecialchars(s) << '\n';
}
ak ta myli to \" ked zadavam hodnotu stringu tak to si nevsimaj, inak sa to v zdrojaku zapisat neda ... ak skusis nacitat string z konzoly tak to normalne funguje ked napises uvodzovky ...
javo
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 89
Registrovaný: 15 sep 2006, 21:30
Kontaktovať používateľa:

Príspevok od používateľa javo »

no o tom ze to funguje takto som vedel, myslel som ale ze to robi problemy ked citam subor z XML, problem bol ale niekde inde, a stacilo sa na to pozriet teraz rano :) a nie vcera to po celom dni za pc riesit vecer ;)
diki moc krat za cas, mozno to aspon niekomu pomoze
Napísať odpoveď