Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- long sort_p(char** ptr,int*mas, int size) {
- for (int i = 0; i < size - 1; i++) {
- for (int j = i + 1; j < size; j++) {
- if ((int)*ptr[j] < (int)*ptr[i]) {
- char* tmp = ptr[i];
- int tmp2 = mas[i];
- ptr[i] = ptr[j];
- mas[i] = mas[j];
- ptr[j] = tmp;
- mas[j] = tmp2;
- }
- }
- }
- return 0;
- }
- long print(char** ptr,int* mas ,int size) {
- for (int i = 0;i < size;i++)
- {
- for (int j = 0;j < mas[i];j++)
- {
- cout << ptr[i][j];
- }
- cout << '\n';
- }
- cout << '\n';
- return 0;
- }
- int main()
- {
- char string[256];
- gets_s(string, 256);
- int numberOfWords = 0;
- for (int j = 0;j < strlen(string);j++)
- {
- if (string[j] == ' ') numberOfWords++;
- else if (string[j] == '\0') numberOfWords++;
- }
- //cout << "\n" << numberOfWords << "\n";
- int* lengthTab = new int[numberOfWords];
- int numOfSymbInWord = 0;
- int i = 0;
- while (i < numberOfWords)
- {
- for (int j = 0;j < strlen(string);j++)
- {
- if (string[j] != ' ')
- {
- numOfSymbInWord++;
- lengthTab[i] = numOfSymbInWord;
- }
- else {
- numOfSymbInWord = 0;
- i++;
- }
- }
- }
- /*for (int i = 0;i < numberOfWords;i++)
- {
- cout << lengthTab[i] << " ";
- }
- cout << endl;*/
- const int charvalue = 15;
- char** arrOfWords = new char* [numberOfWords];
- for (int i = 0;i < numberOfWords;i++)
- {
- arrOfWords[i] = new char[charvalue];
- }
- int count = 0;
- int k = 0;
- while (count < numberOfWords)
- {
- for (int j = 0;j < strlen(string);j++)
- {
- if (string[j] != ' ') {
- arrOfWords[count][k] = string[j];
- k++;
- }
- else {
- k = 0;
- count++;
- }
- }
- }
- /*for (int i = 0;i < numberOfWords;i++)
- {
- for (int j = 0;j < lengthTab[i];j++)
- {
- cout << arrOfWords[i][j];
- }
- cout << endl;
- }
- cout << endl;*/
- sort_p(arrOfWords, lengthTab, numberOfWords);
- print(arrOfWords, lengthTab, numberOfWords);
- char* newString = new char[256];
- int stringCounter = 0;
- while (stringCounter < strlen(string))
- {
- for (int i = 0;i < numberOfWords;i++)
- {
- for (int j = 0;j < lengthTab[i];j++)
- {
- newString[stringCounter] = arrOfWords[i][j];
- stringCounter++;
- }
- newString[stringCounter] = ' ';
- stringCounter++;
- newString[stringCounter] = '\0';
- }
- }
- for (int i = 0;i < strlen(newString);i++)
- {
- cout << newString[i];
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement