fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. bool isLetter(char x) {
  6. return ( (x >= 'A' && x <= 'Z') || (x >= 'a' && x <= 'z') );
  7. }
  8.  
  9. void rearrangeWord(string newS) {
  10. string word;
  11. int numberOfLetters = 0;
  12. for(int i = 0; i < newS.length(); i++) {
  13. if(isLetter(newS[i])) {
  14. word += newS[i];
  15. ++numberOfLetters;
  16. } else if(!isLetter(newS[i])) {
  17. if(numberOfLetters != 0) {
  18. if(numberOfLetters % 2 == 0)
  19. word = word.substr(numberOfLetters / 2, numberOfLetters / 2)
  20. + word.substr(0, numberOfLetters / 2);
  21. else
  22. word = word.substr(numberOfLetters / 2 + 1, numberOfLetters / 2) + word.substr(numberOfLetters / 2, 1)
  23. + word.substr(0, numberOfLetters / 2);
  24. cout << word;
  25. numberOfLetters = 0;
  26. word = "";
  27. cout << newS[i];
  28. } else
  29. cout << newS[i];
  30. }
  31. if(i == newS.length() - 1) {
  32. if(numberOfLetters % 2 == 0)
  33. word = word.substr(numberOfLetters / 2, numberOfLetters / 2)
  34. + word.substr(0, numberOfLetters / 2);
  35. else
  36. word = word.substr(numberOfLetters / 2 + 1, numberOfLetters / 2) + word.substr(numberOfLetters / 2, 1)
  37. + word.substr(0, numberOfLetters / 2);
  38. cout << word;
  39. }
  40. }
  41. }
  42. int main() {
  43. string s, newS = "";
  44. while(getline(cin, s)) {
  45. for(int i = 0; i <= s.length(); i++) {
  46. if(s[i] != ' ' && i < s.length())
  47. newS += s[i];
  48. else {
  49. rearrangeWord(newS);
  50. cout << " ";
  51. newS = "";
  52. }
  53. }
  54. cout << "\n";
  55. }
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 4276KB
stdin
Ana, dar si Maria invata sa programeze pe WellCode!!
Invata si tu sa programezi$$
stdout
anA, rad is iarMa atainv as amezeprogr ep CodeWell!! 
ataInv is ut as ameziprogr$$