Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. long sort_p(char** ptr,int*mas, int size) {
  4. for (int i = 0; i < size - 1; i++) {
  5. for (int j = i + 1; j < size; j++) {
  6. if ((int)*ptr[j] < (int)*ptr[i]) {
  7. char* tmp = ptr[i];
  8. int tmp2 = mas[i];
  9. ptr[i] = ptr[j];
  10. mas[i] = mas[j];
  11. ptr[j] = tmp;
  12. mas[j] = tmp2;
  13. }
  14. }
  15. }
  16. return 0;
  17. }
  18. long print(char** ptr,int* mas ,int size) {
  19. for (int i = 0;i < size;i++)
  20. {
  21. for (int j = 0;j < mas[i];j++)
  22. {
  23. cout << ptr[i][j];
  24. }
  25. cout << '\n';
  26. }
  27. cout << '\n';
  28. return 0;
  29. }
  30. int main()
  31. {
  32. char string[256];
  33. gets_s(string, 256);
  34. int numberOfWords = 0;
  35. for (int j = 0;j < strlen(string);j++)
  36. {
  37. if (string[j] == ' ') numberOfWords++;
  38. else if (string[j] == '\0') numberOfWords++;
  39. }
  40. //cout << "\n" << numberOfWords << "\n";
  41. int* lengthTab = new int[numberOfWords];
  42. int numOfSymbInWord = 0;
  43. int i = 0;
  44. while (i < numberOfWords)
  45. {
  46. for (int j = 0;j < strlen(string);j++)
  47. {
  48. if (string[j] != ' ')
  49. {
  50. numOfSymbInWord++;
  51. lengthTab[i] = numOfSymbInWord;
  52. }
  53. else {
  54. numOfSymbInWord = 0;
  55. i++;
  56. }
  57. }
  58. }
  59. /*for (int i = 0;i < numberOfWords;i++)
  60. {
  61. cout << lengthTab[i] << " ";
  62. }
  63. cout << endl;*/
  64. const int charvalue = 15;
  65. char** arrOfWords = new char* [numberOfWords];
  66. for (int i = 0;i < numberOfWords;i++)
  67. {
  68. arrOfWords[i] = new char[charvalue];
  69. }
  70. int count = 0;
  71. int k = 0;
  72. while (count < numberOfWords)
  73. {
  74. for (int j = 0;j < strlen(string);j++)
  75. {
  76. if (string[j] != ' ') {
  77. arrOfWords[count][k] = string[j];
  78. k++;
  79. }
  80. else {
  81. k = 0;
  82. count++;
  83. }
  84. }
  85. }
  86. /*for (int i = 0;i < numberOfWords;i++)
  87. {
  88. for (int j = 0;j < lengthTab[i];j++)
  89. {
  90. cout << arrOfWords[i][j];
  91. }
  92. cout << endl;
  93. }
  94. cout << endl;*/
  95. sort_p(arrOfWords, lengthTab, numberOfWords);
  96. print(arrOfWords, lengthTab, numberOfWords);
  97. char* newString = new char[256];
  98. int stringCounter = 0;
  99. while (stringCounter < strlen(string))
  100. {
  101. for (int i = 0;i < numberOfWords;i++)
  102. {
  103. for (int j = 0;j < lengthTab[i];j++)
  104. {
  105. newString[stringCounter] = arrOfWords[i][j];
  106. stringCounter++;
  107. }
  108. newString[stringCounter] = ' ';
  109. stringCounter++;
  110. newString[stringCounter] = '\0';
  111. }
  112. }
  113. for (int i = 0;i < strlen(newString);i++)
  114. {
  115. cout << newString[i];
  116. }
  117. return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement