diff options
Add solutions
Example solutions to task4+5
2 files changed, 87 insertions, 0 deletions
| -rw-r--r-- | pract_SI/Pract. 08/Stringstream/task4.cpp | 56 | ||||
| -rw-r--r-- | pract_SI/Pract. 08/Stringstream/task5.cpp | 31 |
diff --git a/pract_SI/Pract. 08/Stringstream/task4.cpp b/pract_SI/Pract. 08/Stringstream/task4.cpp new file mode 100644 index 0000000..7b6b185 --- /dev/null +++ b/pract_SI/Pract. 08/Stringstream/task4.cpp @@ -0,0 +1,56 @@ +#include <iostream> +#include <vector> +#include <string> +#include <sstream> + +int main() { + std::string str; + std::vector<std::pair<std::string, int>> myVector; + + getline(std::cin, str); + std::stringstream ss; + ss << str; + + std::string temp; + while (ss >> temp) { + std::string lowString = ""; + bool is_exist = false; + + for (size_t i = 0; i < temp.size(); i++) + { + lowString += tolower(temp[i]); + } + + for (size_t i = 0; i < myVector.size(); i++) + { + if (myVector[i].first == lowString) + { + myVector[i].second++; + is_exist = !is_exist; + break; + } + } + + if (is_exist == false) + { + myVector.push_back(std::make_pair(lowString, 1)); + } + } + + std::vector<std::string> outVector; + for (size_t i = 0; i < myVector.size(); i++) + { + if (myVector[i].second % 2 == 1) + { + outVector.push_back(myVector[i].first); + } + } + + for (size_t i = 0; i < outVector.size() - 1; i++) + { + std::cout << outVector[i] << ", "; + } + std::cout << outVector[outVector.size() - 1] << std::endl; + + return 0; +}
\ No newline at end of file diff --git a/pract_SI/Pract. 08/Stringstream/task5.cpp b/pract_SI/Pract. 08/Stringstream/task5.cpp new file mode 100644 index 0000000..b859441 --- /dev/null +++ b/pract_SI/Pract. 08/Stringstream/task5.cpp @@ -0,0 +1,31 @@ +#include <iostream> +#include <sstream> +#include <string> +#include <set> +#include <algorithm> + +int main() +{ + std::string line, word; + std::set<std::string> words; + + getline(std::cin, line); + std::istringstream lineStream(line); + + while(lineStream >> word) + if(word.size() < 5) + { + transform(word.begin(), word.end(), word.begin(),[](unsigned char c){ return tolower(c); }); + words.insert(word); + } + if (words.size() > 0) + { + for (std::set<std::string>::iterator it = words.begin(); it != --words.end(); ++it) + { + std::cout << *it << ", "; + } + } + + std::cout << *(--words.end()); + return 0; +}
\ No newline at end of file |
