• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tagi HTML - spoj

Konkurs Mistrz Programowania
0 głosów
875 wizyt
pytanie zadane 9 grudnia 2018 w C i C++ przez Shimeo7 Obywatel (1,910 p.)

Panowie, co jest :( robię zadanie tagi HTML https://pl.spoj.com/problems/JHTMLLET/  wszystko się zmienia, ale wprowadzając '<' nic nie ma w stumieniu wyjścia. Nakierujecie co psuje?

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

using namespace std;

int main()
{
    string napis;
    int dlugosc;

    while(getline(cin, napis))
    {
        dlugosc = napis.length();
        for(int i=0; i<dlugosc; i++)
        {
            if(napis[i]=='<')
            {
                while(napis[i]!='>')
                {
                    transform(napis.begin(),napis.end(),napis.begin(),::toupper);
                }
            }
        }

        for(int i=0; i<dlugosc; i++)
        {
            if(i==dlugosc-1)
                cout << napis[i] << endl;
            else
                cout << napis[i];
        }
    }
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 9 grudnia 2018 przez j23 Mędrzec (195,220 p.)
dlugosc = napis.length();

for(int i = 0; i < dlugosc; )
{
	if(napis[i++] == '<')
	{
		int j = i;
		while(j < dlugosc && napis[j++] != '>') {}
		std::transform(napis.begin() + i, napis.begin() + j, napis.begin() + i, ::toupper);
		i = j;
	}
}

 

komentarz 10 grudnia 2018 przez Shimeo7 Obywatel (1,910 p.)
Dziękuję za odpowiedź, jednak nie do końca rozumiem. Dlaczego tworzone są dwie zmienne (i & j). Jeszcze jest taki problem, ze próbowałem wyświetlić napis, ale nic się nie wyświetlało, dodałem kolejną pętle typu for, w celu wyświetlenia napisu. Z góry dziękuję za odpowiedź
komentarz 10 grudnia 2018 przez j23 Mędrzec (195,220 p.)

Jeszcze jest taki problem, ze próbowałem wyświetlić napis, ale nic się nie wyświetlało

Nie wiem, jak wstawiłeś ten kod do swojego, więc trudno coś sensownego napisać na ten temat.

 

Dlaczego tworzone są dwie zmienne (i & j)

Użycie obu zmiennych w wywołaniu std::stransform powinno tłumaczyć, po co one są. i - początek zawartości taga, pozycja za <, j - pozycja za >.

Podobne pytania

0 głosów
1 odpowiedź 243 wizyt
pytanie zadane 27 lutego 2020 w HTML i CSS przez BlayUng Początkujący (260 p.)
0 głosów
2 odpowiedzi 870 wizyt
pytanie zadane 12 września 2018 w PHP przez Ambroz Obywatel (1,840 p.)
0 głosów
1 odpowiedź 2,250 wizyt
pytanie zadane 9 września 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)

93,654 zapytań

142,575 odpowiedzi

323,091 komentarzy

63,172 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...