wheelsmanx

CPS 271 Machine Problem 7

Apr 12th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <vector>
  4. #include <string>
  5. #include <fstream>
  6. #include <algorithm>
  7.  
  8. using namespace std;
  9.  
  10. class FreqBase{
  11. public:
  12. vector<string> tempBase;
  13. vector<string> base;
  14. vector<string> freqCounter;
  15. vector<int> freqCounterInt;
  16. string getLineString;
  17. };
  18.  
  19. vector <string> cstringsplit(string input, string delimeter) {
  20. int delimSize = delimeter.length();
  21. int inputSize = input.length();
  22. string buffer;
  23. vector <string> v;
  24. for (int i = 0; i < inputSize; i++) {
  25. if (input.substr(i, delimSize) != delimeter) {
  26. buffer += input[i];
  27. }
  28. else {
  29. v.push_back(buffer);
  30. buffer = "";
  31. i = i + delimSize - 1;
  32. }
  33. }
  34. v.push_back(buffer);
  35. buffer = "";
  36. return v;
  37. }
  38. void freqCounterFunction() {
  39. ifstream fileInput; //here we are going to define the file that we are trying to stream
  40. fileInput.open("c:\\temp\\freq.txt");
  41. FreqBase WordBase;
  42. while (!fileInput.eof())
  43. {
  44. getline(fileInput, WordBase.getLineString);
  45. WordBase.tempBase = cstringsplit(WordBase.getLineString, " ");
  46. for (string c : WordBase.tempBase) {
  47. WordBase.base.push_back(c);
  48. }
  49. }
  50. for (int i = 0; i < WordBase.base.size(); i++) {
  51. string buffer = WordBase.base[i];
  52. for (int b = 0; b < unsigned(buffer.length()); b++) {
  53. if (ispunct(buffer[b])) {
  54. buffer[b] = ' ';
  55. }
  56. }
  57. buffer.erase(remove_if(buffer.begin(), buffer.end(), isspace), buffer.end());
  58. WordBase.base[i] = buffer;
  59. }
  60. for (string c : WordBase.base) {
  61. if (std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), c) != WordBase.freqCounter.end()) {
  62.  
  63. }
  64. else {
  65. WordBase.freqCounter.push_back(c);
  66. }
  67. }
  68. WordBase.freqCounterInt.assign(WordBase.freqCounter.size() + 1, 0);
  69.  
  70. for (int i = 0; i < WordBase.base.size(); i++) {
  71. if (std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), WordBase.base[i]) != WordBase.freqCounter.end()) {
  72. auto it = std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), WordBase.base[i]);
  73. if (it == WordBase.freqCounter.end())
  74. {
  75. // name not in vector
  76. }
  77. else
  78. {
  79. int index = std::distance(WordBase.freqCounter.begin(), it);
  80. WordBase.freqCounterInt[index]++;
  81. }
  82. }
  83. }
  84. for (int i = 0; i < WordBase.freqCounterInt.size() - 1; i++) {
  85. cout << WordBase.freqCounterInt[i] << " " << WordBase.freqCounter[i] << endl;
  86. }
  87. }
  88. bool PallendromFunction(string input) {
  89. string tempInput = input;
  90. reverse(tempInput.begin(), tempInput.end());
  91. if (tempInput == input) {
  92. return true;
  93. }
  94. else {
  95. return false;
  96. }
  97. }
  98. void main() {
  99.  
  100. // the input file is in C:/temp/Freq.txt
  101. freqCounterFunction();
  102.  
  103. if (PallendromFunction("racecare")) {
  104. cout << "yes it is" << endl;
  105. }
  106. else {
  107. cout << "no it is not" << endl;
  108. }
  109.  
  110.  
  111. system("pause");
  112. }
Advertisement
Add Comment
Please, Sign In to add comment