fork(5) download
  1. /*
  2. Se consideră un text cu cel mult 100 de caractere, în care cuvintele sunt formate numai din
  3. litere mici ale alfabetului englez și sunt separate prin câte un spațiu.
  4. Scrieţi un program C/C++ care citeşte de la tastatură un text de tipul menţionat mai sus şi
  5. determină transformarea acestuia în memorie, astfel încât din fiecare cuvânt format dintr-un
  6. număr impar de litere (cel puțin trei) să se elimine litera aflată pe poziția din mijloc, ca în
  7. exemplu. Programul afişează pe ecran textul obţinut, iar dacă nu există niciun cuvânt
  8. modificat, afișează pe ecran mesajul nu exista.
  9. Exemplu: pentru textul
  10. pictura prin aceea arata o pace profunda
  11. se afişează
  12. picura prin acea arta o pace profunda
  13. */
  14.  
  15. #include <iostream>
  16. #include <cstring>
  17. using namespace std;
  18.  
  19. int main() {
  20. char s[101];
  21. char s2[101];
  22. cin.getline(s, 100);
  23. int l = strlen(s);
  24. int lc = 0;
  25. for (int i = 0; i < l; i++) {
  26. if (s[i] == ' ') {
  27. if (lc >= 3 && lc % 2 != 0) {
  28. s[i - lc / 2 - 1] = '%';
  29. }
  30. lc = 0;
  31. } else {
  32. lc++;
  33. }
  34. }
  35. if (lc >= 3 && lc % 2 != 0) {
  36. s[l - lc / 2 - 1] = '%';
  37. }
  38. int p = 0;
  39. for (int i = 0; i < l; i++) {
  40. if (s[i] == '%') {
  41. p++;
  42. } else {
  43. s2[i - p] = s[i];
  44. }
  45. }
  46. s2[l - p] = 0;
  47. cout << s2;
  48. return 0;
  49. }
Success #stdin #stdout 0s 3300KB
stdin
pictura prin aceea arata o pace profunda
stdout
picura prin acea arta o pace profunda