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;
}