Advertisement
f8ith

BT11.cpp

Jun 23rd, 2022
734
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <string>
  2. #include <iostream>
  3. #include <cmath>
  4. #include <map>
  5.  
  6. void q1(void)
  7. {
  8.     std::string str;
  9.     std::cout << "Input: ";
  10.     std::cin >> str;
  11.  
  12.     std::cout << str[0] << str[floor(str.length() / 2)] << str[str.length() - 1] << std::endl;
  13. }
  14.  
  15. void q2(void)
  16. {
  17.     std::string str1;
  18.     std::cout << "s1: ";
  19.     std::cin >> str1;
  20.  
  21.     std::string str2;
  22.     std::cout << "s2: ";
  23.     std::cin >> str2;
  24.  
  25.     int mid = floor(str1.length() / 2);
  26.  
  27.     std::string str3 = str1.substr(0, mid) + str2 + str1.substr(mid, str1.length() - 1);
  28.  
  29.     std::cout << str3 << std::endl;
  30. }
  31.  
  32. void q3(void)
  33. {
  34.     std::string str;
  35.     std::cout << "Input: ";
  36.     std::cin >> str;
  37.  
  38.     std::string lowerStr;
  39.     std::string upperStr;
  40.  
  41.     for (int i = 0; i < str.length(); i++)
  42.     {
  43.         if (std::islower(str[i]))
  44.         {
  45.             lowerStr += str[i];
  46.         }
  47.         else
  48.         {
  49.             upperStr += str[i];
  50.         }
  51.     }
  52.  
  53.     std::cout << lowerStr << upperStr << std::endl;
  54. }
  55.  
  56. void q4(void)
  57. {
  58.     int chars, digits, symbols;
  59.     chars = digits = symbols = 0;
  60.     std::string str;
  61.     std::cout << "Input: ";
  62.     std::cin >> str;
  63.  
  64.     for (int i = 0; i < str.length(); i++)
  65.     {
  66.         if (std::isdigit(str[i]))
  67.         {
  68.             digits++;
  69.         }
  70.         else if (std::isalpha(str[i]))
  71.         {
  72.             chars++;
  73.         }
  74.         else
  75.         {
  76.             symbols++;
  77.         }
  78.     }
  79.  
  80.     std::cout << "Chars: " << chars << std::endl
  81.               << "Digits: " << std::endl
  82.               << digits << "Symbols: " << symbols << std::endl;
  83. }
  84.  
  85. void q5(void)
  86. {
  87.     std::string str;
  88.     std::cout << "Input: ";
  89.     std::getline(std::cin, str);
  90.  
  91.     std::string sub = "hk";
  92.  
  93.     std::transform(str.begin(), str.end(), str.begin(), ::tolower);
  94.  
  95.     std::size_t pos = str.find(sub, 0);
  96.     int count = 0;
  97.     while (pos != std::string::npos)
  98.     {
  99.         count++;
  100.         pos = str.find(sub, pos + 1);
  101.     }
  102.  
  103.     std::cout << "The HK count is: " << count << std::endl;
  104. }
  105.  
  106. void q6(void)
  107. {
  108.     std::string str;
  109.     std::cout << "Input: ";
  110.     std::getline(std::cin, str);
  111.  
  112.     std::map<char, int> chars;
  113.  
  114.     for (int i = 0; i < str.length(); i++)
  115.     {
  116.         chars[str[i]]++;
  117.     }
  118.  
  119.     std::cout << "{ ";
  120.     std::for_each(chars.begin(), chars.end(),
  121.                   [](const std::pair<char, int> &p)
  122.                   {
  123.                       std::cout << p.first << ": " << p.second << ", ";
  124.                   });
  125.     std::cout << "}" << std::endl;
  126. }
  127.  
  128. void q7(void)
  129. {
  130.     std::string str;
  131.     std::cout << "Input: ";
  132.     std::getline(std::cin, str);
  133.  
  134.     std::string sub = "Emma";
  135.  
  136.     std::size_t pos = str.rfind(sub);
  137.  
  138.     if (pos != std::string::npos)
  139.     {
  140.         std::cout << "Last occurrence of Emma starts at index " << pos << std::endl;
  141.     }
  142.     else
  143.     {
  144.         std::cout << "No occurrences of Emma were found." << std::endl;
  145.     }
  146. }
  147.  
  148. void q8(void)
  149. {
  150.     std::string str;
  151.     std::cout << "Input: ";
  152.     std::getline(std::cin, str);
  153.  
  154.     std::string strout;
  155.  
  156.     for (int i = 0; i < str.length(); i++)
  157.     {
  158.         if (std::isdigit(str[i]))
  159.         {
  160.             strout += str[i];
  161.         }
  162.     }
  163.  
  164.     std::cout << strout << std::endl;
  165. }
  166.  
  167. void q9(void)
  168. {
  169.     std::string str;
  170.     std::cout << "Input: ";
  171.     std::getline(std::cin, str);
  172.     for (int i = 0; i < str.length(); i++)
  173.     {
  174.         if (!std::isdigit(str[i]) && !std::isalpha(str[i]) && !(str[i] == ' '))
  175.         {
  176.             str[i] = '#';
  177.         }
  178.     }
  179.  
  180.     std::cout << str << std::endl;
  181. }
  182.  
  183. int main(void)
  184. {
  185.     q1();
  186.     q2();
  187.     q3();
  188.     q4();
  189.     q5();
  190.     q6();
  191.     q7();
  192.     q8();
  193.     q9();
  194.     return 0;
  195. }
Advertisement
RAW Paste Data Copied
Advertisement