Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <vector>
- #include <string>
- #include <fstream>
- #include <algorithm>
- using namespace std;
- class FreqBase{
- public:
- vector<string> tempBase;
- vector<string> base;
- vector<string> freqCounter;
- vector<int> freqCounterInt;
- string getLineString;
- };
- vector <string> cstringsplit(string input, string delimeter) {
- int delimSize = delimeter.length();
- int inputSize = input.length();
- string buffer;
- vector <string> v;
- for (int i = 0; i < inputSize; i++) {
- if (input.substr(i, delimSize) != delimeter) {
- buffer += input[i];
- }
- else {
- v.push_back(buffer);
- buffer = "";
- i = i + delimSize - 1;
- }
- }
- v.push_back(buffer);
- buffer = "";
- return v;
- }
- void freqCounterFunction() {
- ifstream fileInput; //here we are going to define the file that we are trying to stream
- fileInput.open("c:\\temp\\freq.txt");
- FreqBase WordBase;
- while (!fileInput.eof())
- {
- getline(fileInput, WordBase.getLineString);
- WordBase.tempBase = cstringsplit(WordBase.getLineString, " ");
- for (string c : WordBase.tempBase) {
- WordBase.base.push_back(c);
- }
- }
- for (int i = 0; i < WordBase.base.size(); i++) {
- string buffer = WordBase.base[i];
- for (int b = 0; b < unsigned(buffer.length()); b++) {
- if (ispunct(buffer[b])) {
- buffer[b] = ' ';
- }
- }
- buffer.erase(remove_if(buffer.begin(), buffer.end(), isspace), buffer.end());
- WordBase.base[i] = buffer;
- }
- for (string c : WordBase.base) {
- if (std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), c) != WordBase.freqCounter.end()) {
- }
- else {
- WordBase.freqCounter.push_back(c);
- }
- }
- WordBase.freqCounterInt.assign(WordBase.freqCounter.size() + 1, 0);
- for (int i = 0; i < WordBase.base.size(); i++) {
- if (std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), WordBase.base[i]) != WordBase.freqCounter.end()) {
- auto it = std::find(WordBase.freqCounter.begin(), WordBase.freqCounter.end(), WordBase.base[i]);
- if (it == WordBase.freqCounter.end())
- {
- // name not in vector
- }
- else
- {
- int index = std::distance(WordBase.freqCounter.begin(), it);
- WordBase.freqCounterInt[index]++;
- }
- }
- }
- for (int i = 0; i < WordBase.freqCounterInt.size() - 1; i++) {
- cout << WordBase.freqCounterInt[i] << " " << WordBase.freqCounter[i] << endl;
- }
- }
- bool PallendromFunction(string input) {
- string tempInput = input;
- reverse(tempInput.begin(), tempInput.end());
- if (tempInput == input) {
- return true;
- }
- else {
- return false;
- }
- }
- void main() {
- // the input file is in C:/temp/Freq.txt
- freqCounterFunction();
- if (PallendromFunction("racecare")) {
- cout << "yes it is" << endl;
- }
- else {
- cout << "no it is not" << endl;
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment