Bawię się zadaniem ze spoja (http://pl.spoj.com/problems/JHTMLLET/). Napisałem sobie prosty programik, który wyszukuje mi tagi otwarcia znacznika ('<') oraz zamknięcia ('>'), w pętli zmieniam wielkość znaków w znacznikach, ale moja skromna wiedza nie pozwala mi na stałą zmianę wczytywanego tekstu. Mogę wypisać wskaźniki ze zmianą na duże litery, ale
toupper(tekst[i], loc);
nie zmienia mi tych fragmentów w samym tekście wejściowym. Poniżej kod:
#include <iostream>
#include <string>
#include <locale>
using namespace std;
char open = '<';
char close = '>';
int main() {
string tekst = "<html>\n<head>\n<TITLE>To jest tytul</Title>\n</head>\
\n<body>\n<b>Cos tam</b>\n</body>\n</html>";
locale loc;
size_t poz_open = tekst.find(open);
size_t poz_close = tekst.find(close);
do {
cout << "Open: "<< poz_open<<" "<<endl;
cout << "CLose: "<< poz_close<<" "<<endl;
for (int i = poz_open +1; i < poz_close; i++) {
toupper(tekst[i], loc);
cout << toupper(tekst[i], loc);
}
cout << endl;
poz_open = tekst.find(open, poz_open + 1);
poz_close = tekst.find(close, poz_close +1);
}while(poz_close != string::npos && poz_open != string::npos);
cout << tekst;
return 0;
}
Jak sprawić żeby końcowe
cout<<tekst
wypisało tekst ze zmienioną wielkością liter w tagach? Dzięki za pomoc.