Napisałem taką prostą funkcję do likwidowania przerw między znacznikami HTML. Zauważyłem że w zwolnione miejsce do tablicy text, tekst zaczyna wpisywać się od początku, tak jakby zmienna "p" się zerowała i inkremetowała od początku. Problem rozwiązałem (zakomentowany if w drugim for) ale tak na dobrą sprawę nie wiem czemu tak się działo i nie daje mi to spokoju ;-P
void spacebars_removing(char* text, int rozmiar)
{
unsigned int* tab_int=new unsigned int[rozmiar];
for(int i=0;i<rozmiar;i++){tab_int[i]=static_cast<unsigned int>(text[i]);}
int* tab_int2=new int[rozmiar];
int p=0;
for(int i=0;i<rozmiar;i++)
{
if(tab_int[p]==13)
{
while(tab_int[p]!=60)
{
p++;
}
}
tab_int2[i]=tab_int[p];
p++;
//if(p>rozmiar){tab_int2[i]=0;}
}
for(int i=0;i<rozmiar;i++)
{
text[i]=static_cast<char>(tab_int2[i]);
}
}
Do razu wyjaśnię że operował na tab_int2 bo przy wczytywaniu plików kodowanych UTF8 program wykrzaczał się przy uruchamianiu, w sumie też nie wiem dlaczego. Wrzucam pliki na których testowałem:
http://wrzucacz.pl/file/6341258226632