Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 15 / task1.cpp
diff options
context:
space:
mode:
Commit55fc7eb3bba83f4084b2f897c61d0280a5f9c097 (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2021-10-02 17:44:35 +0300
Files85d32a9a73f85c54162f9233f36a054ebe0de212 /Sem. 15/task1.cpp
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.tar.gz
Introduction_to_programming_FMI-55fc7eb3bba83f4084b2f897c61d0280a5f9c097.zip
Parent7f51b56297270d4a1f808bc73d082b71418a2fe0 (diff)
new
1 files changed, 0 insertions, 121 deletions
-rw-r--r--Sem. 15/task1.cpp121
diff --git a/Sem. 15/task1.cpp b/Sem. 15/task1.cpp
deleted file mode 100644
index d44663e..0000000
--- a/Sem. 15/task1.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#include <iostream>
-
-using namespace std;
-
-int countWords(const char* text)
-{
- bool wasLastCharSpace = true;
- int wordCount = 0;
- int len = strlen(text);
-
- for (int i = 0; i < len; i++)
- {
- if (wasLastCharSpace && text[i] != ' ' )
- {
- wordCount++;
- wasLastCharSpace = false;
- }
- else if (text[i] == ' ')
- wasLastCharSpace = true;
- }
- return wordCount;
-
-}
-int getWordLength(const char* text, int start)
-{
- int len = 0;
- int index = start;
-
- while (text[index] != ' ' && text[index] != '\0')
- {
- index++;
- len++;
- }
- return len;
-}
-
-void copyChars(char* dest, const char* text, int start, int len)
-{
-
- for (int i = start, index = 0; index < len; i++, index++)
- dest[index] = text[i];
-
- dest[len] = '\0';
-}
-void fillWords(char** words, const char* text)
-{
- int len = strlen(text);
- int currentWordIndex = 0;
-
- for (int i = 0; i < len; i++)
- {
- if (text[i] == ' ')
- continue;
-
- int currentWordLen = getWordLength(text, i);
-
- words[currentWordIndex] = new char[currentWordLen + 1]; //(**)
-
- copyChars(words[currentWordIndex], text, i, currentWordLen);
-
- currentWordIndex++;
- i += currentWordLen;
- }
-}
-
-void swap(char** arr, int i, int j)
-{
- char* wordPtr = arr[i];
- arr[i] = arr[j];
- arr[j] = wordPtr;
-}
-void selectionSort(char** arr, int len)
-{
- for (int pos = 0; pos < len - 1; pos++)
- {
- int minIndex = pos;
- for (int i = pos; i < len; i++)
- {
- if (strcmp(arr[i], arr[minIndex]) < 0)
- minIndex = i;
- }
- if (pos != minIndex)
- swap(arr, pos, minIndex);
- }
-}
-
-void free(char** words, int wordsCount)
-{
- for (int i = 0; i < wordsCount; i++)
- delete[] words[i]; // (**)
- delete[] words; // (*)
-}
-void task1(const char* text)
-{
-
- int wordsCount = countWords(text);
-
- char** words = new char*[wordsCount]; // (*)
-
- fillWords(words, text);
-
- cout << "Before sort:" << endl;
- for (int i = 0; i < wordsCount; i++)
- cout << words[i] << endl;
-
- selectionSort(words, wordsCount);
-
- cout << "After sort:" << endl;
- for (int i = 0; i < wordsCount; i++)
- cout << words[i] << endl;
-
- free(words);
-}
-
-int main()
-{
- const char* text = " hello friends. how are you friends. ";
-
- task1(text);
-
-}