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

Świńska łacina - komplikacje

Object Storage Arubacloud
0 głosów
216 wizyt
pytanie zadane 12 lutego 2020 w C i C++ przez bartx3 Początkujący (270 p.)

Witam.

Jestem póki co jestem całkiem świeży w temacie programowania. Chodząc do liceum do 1 klasy mat-infu warto w końcu coś umieć. Piszę to, by zaznaczyć, że jestem początkujący i stosuję dość prymitywne metody.

Robiłem ćwiczenie programistyczne "świńska łacina". Program ma przesuwać w kilku słowach (same małe litery i bez znaków) przedzielonych pojedynczymi spacjami pierwszą literę na koniec i dodać "ay". linia zawierająca wyrazy >> program >> pojedynczy string zawierający wyrazy zamienione na świńską łacinę .  Niestety coś nie działa i skompilowany program dodaje "ay" poprzedzając ją spacją zamiast dokleić do wyrazu. Miałem 2 pomysły, z czego żaden prawidłowo nie działa. Oto one:

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

int main() {
    string sentence;
    getline (cin, sentence);
    int pauses = 0;
    int leng = sentence.length();
    for (int i = 0; i < leng; i++){
        if (sentence [i] == ' '){
            pauses++;
        }
    }
    pauses++;
    string wordz [pauses];
    istringstream inner (sentence);
    for (int i1 = 0; i1 < pauses; i1++){
        inner >> wordz [i1];
    }
    for (int i2 = 0; i2 < pauses; i2++){
        wordz [i2] = wordz [i2] + wordz [i2] [0];
        int l = wordz [i2].length();
        for (int i3 = 0; i3 < l; i3++){
            wordz [i2] [i3] = wordz [i2] [i3+1];
        }
        wordz [i2] = wordz [i2] + "ay";
    }
    string ans;
    ans ="";
    for (int i4 = 0; i4 < pauses; i4++){
        if (i4 == pauses - 1){ans = ans + wordz [i4];}    
        else {ans = ans + wordz [i4] + " ";}
    }
    cout << ans; 
    return 0;
}
#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string sentence;
    getline (cin, sentence);
    int pauses = 0;
    int leng = sentence.length();
    for (int i = 0; i < leng; i++){
        if (sentence [i] == ' '){
            pauses++;
        }
    }
    pauses++;
    string wordz [pauses];
    istringstream inner (sentence);
    for (int i1 = 0; i1 < pauses; i1++){
        inner >> wordz [i1];
    }
    stringstream wrds;
    for (int i2 = 0; i2 < pauses; i2++){
        wordz [i2] = wordz [i2] + wordz [i2] [0];
        int l = wordz [i2].length();
        for (int i3 = 0; i3 < l; i3++){
            wordz [i2] [i3] = wordz [i2] [i3+1];
        }
        wrds << wordz [i2] << "ay ";
    }
    string slowa [pauses];
    for (int i5 = 0; i5 < pauses; i5++){
    wrds >> slowa [i5];
    }
    string ans;
    ans ="";
    for (int i4 = 0; i4 < pauses; i4++){
        if (i4 == pauses - 1){ans = ans + slowa [i4];}
        else {ans = ans + slowa [i4] + " ";}
    }
    cout << ans;
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 13 lutego 2020 przez j23 Mędrzec (194,920 p.)
std::string s;
    
while (std::cin >> s) {
    (s += s[0]).erase(0, 1);
    std::cout << s << "ay" << ' ';
}

O to chodzi?

Podobne pytania

0 głosów
3 odpowiedzi 200 wizyt
0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 11 marca 2017 w C i C++ przez Meltern Początkujący (440 p.)
0 głosów
2 odpowiedzi 211 wizyt
pytanie zadane 25 kwietnia 2018 w Offtop przez Layoutowiec Mądrala (5,470 p.)

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

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

...