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

Spacje - spoj błąd

0 głosów
1,733 wizyt
pytanie zadane 28 lutego 2016 w C i C++ przez Uczen Użytkownik (600 p.)

Robię zadanie "spacje" na spoju, mimo, że wszystko działa, przynajmniej tak mi się wydaje, to na spoju wywala mi błąd:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string napis;
    getline(cin, napis);
    if((napis[0]>=97)&&(napis[0]<=122)){napis[0]=napis[0]-32;}
    for(int i=0;i<napis.length(); i++)
    {
    if(napis[i]==' ') {if((napis[i+1]>=97)&&(napis[i+1]<=122)){napis[i+1]=napis[i+1]-32;} napis.erase(i,1); }
    }
    cout<<napis;

    return 0;
}

Jakieś sugestie?

3 odpowiedzi

+1 głos
odpowiedź 28 lutego 2016 przez Sareley Gaduła (4,740 p.)
wybrane 28 lutego 2016 przez Uczen
 
Najlepsza

Spróbuj wkleić takiego stringa do swojego zadania:                  ala               ma                kota (na początku kilka spacji)

Wg. mnie problem jest na początku pętli for. Sprawdzasz za każdym razem wielkość tablicy znaków i jeżeli masz spacje to usuwasz znaki przez co rozmiar tablicy się zmienia. Skorzystaj z debuggera to zaraz zobaczysz co jest problemem.

Poza tym w komentarzach do zadania ktoś napisał co również może powodować błąd:

Jeśli pierwszy wyraz w linijce jest z małej litery, to tak też powinien być wypisany - inaczej nie przejdzie.

Na wejściu może się pojawić kilka spacji między wyrazami.

Sprawdź swoje rozwiązanie również pod tym kątem.

+1 głos
odpowiedź 28 lutego 2016 przez Radfler VIP (101,030 p.)

W zadaniu nie masz podane ile jest zestawów danych (tj. linii danych). Zamknij kod w pętli:

while(std::getline(std::cin, napis)) {
    // ...
}

Pobierasz wtedy tyle linii ile jest w pliku => powinno zadziałać.

komentarz 28 lutego 2016 przez Uczen Użytkownik (600 p.)
Nadal nie działa :(
0 głosów
odpowiedź 28 lutego 2016 przez Grzesiek Eleryk Mądrala (6,820 p.)
Pomoc z zadaniami ze spoja szukaj na ich forum.

Podobne pytania

+1 głos
1 odpowiedź 984 wizyt
pytanie zadane 2 kwietnia 2023 w SPOJ przez skyynet Początkujący (410 p.)
0 głosów
1 odpowiedź 634 wizyt
pytanie zadane 11 grudnia 2020 w C i C++ przez KKEE Nowicjusz (120 p.)
0 głosów
1 odpowiedź 794 wizyt
pytanie zadane 15 czerwca 2020 w Python przez Piotr Patek Nowicjusz (170 p.)

93,720 zapytań

142,641 odpowiedzi

323,264 komentarzy

63,268 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...