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

SPOJ błąd w zadaniu (usuwanie spacji)

Object Storage Arubacloud
0 głosów
678 wizyt
pytanie zadane 6 lutego 2016 w C i C++ przez niezalogowany

Mam jakiś bład w tym zadaniu i nie wiem jaki. Prosze o pomoc w nalezieniu.

Oto zadanie:

http://pl.spoj.com/problems/JSPACE/

A to moj kod:

 

#include <iostream>
#include <string>
using namespace std;

string x;
string y="";
char p;
int main()
{
    int l;
    while(getline(cin,x))
    {
        y="";



        l=0;
        for(int i =0;i<x.length();i++)
        {
            if(x[i]==' '){
                    i++;
                    p=x[i]-32;
                    y=y+p;
                    l++;
            }else {
                y=y+x[i];
                l++;


            }

        }


    cout<<y<<endl;
    }
    return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 6 lutego 2016 przez Noak Mądrala (5,900 p.)

W środku zdania wyrazy też mogą zaczynać się z wielkiej litery. Wtedy wyświetlamy bez żadnych zmian.

Sprawdź sobie np

Dzisiaj jest Czwartek,
komentarz 6 lutego 2016 przez niezalogowany

Dzieki za odp. poprawiłem ale dalej mi nie działa oto kod:

#include <iostream>
#include <string>
using namespace std;

string x;
string y="";
char p;
int main()
{
    int l;
    while(getline(cin,x))
    {
        //if(x[0]<96) ;
       // else{
        //    x[0]=x[0]-32;
       // }
       // y="";



        l=0;
        for(int i =0;i<x.length();i++)
        {
            if(x[i]==' '){

                    i++;
                    if(x[i]<96){
                        p=x[i];
                    }else{
                          p=x[i]-32;
                        }

                        y=y+p;
                        l++;
                }else {
                    y=y+x[i];
                    l++;


                }

            }


        cout<<y<<endl;
        }
        return 0;
    }

 

komentarz 6 lutego 2016 przez Noak Mądrala (5,900 p.)
edycja 6 lutego 2016 przez Noak
//tu była zła wskazówka//
komentarz 6 lutego 2016 przez Noak Mądrala (5,900 p.)
Dodatkowo tablica stringów ci się nie opróżnia po przejściu pętli. Dlatego przy kolejnych zapytaniach wyświetlane są te poprzednie.
komentarz 6 lutego 2016 przez niezalogowany
Taki kod wysalelm na spoj (z czyszcnieem x i y. i tez nie przyjeło.
A to w kom to tak napisałem bo juz nie wiedziałem co zrobic. ale wyslylaem bez tego

#include <iostream>
#include <string>
using namespace std;
 
string x;
string y="";
char p;
int main()
{
    int l;
    while(getline(cin,x))
    {
        //if(x[0]<96) ;
       // else{
        //    x[0]=x[0]-32;
       // }
       // y="";
 
 
 
        l=0;
        for(int i =0;i<x.length();i++)
        {
            if(x[i]==' '){
 
                    i++;
                    if(x[i]<96){
                        p=x[i];
                    }else{
                          p=x[i]-32;
                        }
 
                        y=y+p;
                        l++;
                }else {
                    y=y+x[i];
                    l++;
 
 
                }
 
            }
 
 
        cout<<y<<endl;
        y="";
        x="";
        }
        return 0;
    }
 

 

komentarz 6 lutego 2016 przez mar3 Gaduła (3,040 p.)
W przypadku, gdy będą dwie spacje obok siebie w wyniku masz jedną.
komentarz 6 lutego 2016 przez niezalogowany
DZIAŁA! mar3 , Noak dzieki za pomoc
komentarz 6 lutego 2016 przez Noak Mądrala (5,900 p.)
Gratulacje :)
+1 głos
odpowiedź 6 lutego 2016 przez mar3 Gaduła (3,040 p.)

Twj program dla danych wejściowych:

Dzisiaj  jest Czwartek

Daje wynik

Dzisiaj jest#zwartek

komentarz 6 lutego 2016 przez mar3 Gaduła (3,040 p.)
Noak mnie wyprzedził

Podobne pytania

0 głosów
1 odpowiedź 132 wizyt
pytanie zadane 7 lutego 2022 w C i C++ przez Mateusz_Abra Nowicjusz (120 p.)
0 głosów
1 odpowiedź 166 wizyt
0 głosów
3 odpowiedzi 541 wizyt
pytanie zadane 11 października 2015 w C i C++ przez Ultra Początkujący (260 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...