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

JSpace-SPOJ błędna odpowiedź w c++

Object Storage Arubacloud
0 głosów
204 wizyt
pytanie zadane 21 września 2020 w C i C++ przez cupoforanges Początkujący (380 p.)
edycja 21 września 2020 przez cupoforanges

Link do zadania->https://pl.spoj.com/problems/JSPACE/

Jak w temacie, próbowałem dodawać endl lub "\n" po wyświetleniu kodu, ale spoj nadal nie zalicza, proszę o pomoc. Przeglądnąłem także podobne wątki, ale nie znalazłem odpowiedzi jeszcze raz proszę o pomoc.

Kod

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string s;

    getline(cin,s);

    for(int i = 0; i < s.length(); i++)
        if((int)s[i]==32)
        {
            while((int)s[i]==32)
                s.erase(i,1);
            s[i] = (char)(toupper(s[i]));
        }

    s[0] = (char)toupper(s[0]);

    for(auto i: s)
        cout << i;
    cout << "\n";

    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 21 września 2020 przez TOM_CPP Pasjonat (22,640 p.)
wybrane 21 września 2020 przez cupoforanges
 
Najlepsza

Wczytujesz tylko pojedynczy wiersz, a musisz wczytać ich więcej. W treści zadania jest przykład z dwoma wierszami.

Pomyśl o takiej konstrukcji

    string input;
    string output;

    while( getline(cin,input) && input != "" )
    {
        output += textReduce(input) + "\n";
    }

    cout << output;

gdzie w funkcji textReduce znajduje się właściwy algorytm do skracania wiadomości. 

string textReduce( const string& text )
{
    string result;
    for(....)
    {
        // twój algorytm do skracania wiadomości.
    }
    return result;
}

 

komentarz 21 września 2020 przez cupoforanges Początkujący (380 p.)
Dzięki za pomoc, ale mam takie pytanie czy const string i & jest konieczny w definicji argumentu? skoro konkatenacja i tak odbywa się w while'u, dzięki za pomoc.
komentarz 22 września 2020 przez TOM_CPP Pasjonat (22,640 p.)

czy const string i & jest konieczny

Nie jest, możesz użyć textReduce( string text ), ale w takim przypadku "przesyłasz" stringa prze wartość, co wiąże się z niepotrzebnym narzutem czasowym i pamięciowym związanym z tworzeniem nowego obiektu typu string ( tutaj text ) w momencie wywołania funkcji. Jeżeli przesyłasz argument przez referencję (jak w przykładzie powyżej) żaden nowy obiekt nie jest tworzony.

komentarz 24 września 2020 przez cupoforanges Początkujący (380 p.)
Rzeczywiście, dzięki za pomoc i odpowiedź.
+1 głos
odpowiedź 21 września 2020 przez tangarr Mędrzec (154,860 p.)
Chyba nie przetestowałeś programu dla przykładu pod zadaniem.

Program ma wczytywać dowolny tekst, który może się składać z wielu linii.

Ponadto wydaje mi się, że nie powinieneś dotykać pierwszego znaku (jeżeli nie jest spacją).
komentarz 21 września 2020 przez cupoforanges Początkujący (380 p.)
Sprawdzałem dla przykładu, ale nie wydaje mi się by było tam wyszczególnione że program wczytuje kolejne linie, ale dzięki za pomoc.

Podobne pytania

0 głosów
1 odpowiedź 481 wizyt
0 głosów
1 odpowiedź 639 wizyt
0 głosów
0 odpowiedzi 251 wizyt

92,621 zapytań

141,477 odpowiedzi

319,817 komentarzy

62,005 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...