Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 15 / task3.cpp
diff options
context:
space:
mode:
Commit16620176eaf6ebf6e7e24a4e27f3e68f7431f2fc (patch)
Author
 Angel Dimitriev <achi_d@abv.bg>
2022-01-17 02:00:07 +0200
Committer
 GitHub <noreply@github.com>
2022-01-17 02:00:07 +0200
Filesf82263eaf55f6849955dccc6bf0d7317246f728d /Sem. 15/task3.cpp
Introduction_to_programming_FMI-16620176eaf6ebf6e7e24a4e27f3e68f7431f2fc.tar
Introduction_to_programming_FMI-16620176eaf6ebf6e7e24a4e27f3e68f7431f2fc.tar.gz
Introduction_to_programming_FMI-16620176eaf6ebf6e7e24a4e27f3e68f7431f2fc.zip
Parentf0214efafa2f98eb1ae5c83fb16ffacde2492231 (diff)
Add files via upload
1 files changed, 48 insertions, 0 deletions
-rw-r--r--Sem. 15/task3.cpp48
diff --git a/Sem. 15/task3.cpp b/Sem. 15/task3.cpp
new file mode 100644
index 0000000..83bc8f3
--- /dev/null
+++ b/Sem. 15/task3.cpp
@@ -0,0 +1,48 @@
+#include <iostream>
+
+
+bool isLowerChar(char ch)
+{
+ return ch >= 'a' && ch <= 'z';
+}
+char* sortLowerChars(const char* str)
+{
+ const int ALPHABET_SIZE = 26;
+ int hist[ALPHABET_SIZE] = { 0 };
+ int newSize = 0;
+
+ while (*str != '\0')
+ {
+ if (isLowerChar(*str))
+ {
+ newSize++;
+ hist[*str - 'a']++;
+ }
+
+ str++;
+ }
+
+ char* result = new char[newSize + 1];
+ result[newSize] = '\0';
+ int resultIndex = 0;
+
+ for (int i = 0; i < ALPHABET_SIZE; i++)
+ {
+ while (hist[i] > 0)
+ {
+ result[resultIndex++] = 'a' + i;
+ hist[i]--;
+ }
+ }
+ return result;
+
+}
+
+int main()
+{
+ char* result = sortLowerChars("bbzzAaaTYb");
+
+ std::cout << result << std::endl;
+
+ delete[] result;
+} \ No newline at end of file