Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cctype>
- #include<stdio.h>
- #include <iostream>
- using namespace std;
- class AlphaSet
- {
- private:
- unsigned bin;
- public:
- AlphaSet() { bin = 0 ;};
- AlphaSet(char*);
- AlphaSet operator*(AlphaSet&);
- AlphaSet& operator~();
- friend ostream& operator<<(ostream&, AlphaSet&);
- };
- AlphaSet::AlphaSet(char* s)
- {
- bin = 0;
- while (*s)
- {
- bin |= (1 << (tolower(*s) - 'a'));
- s++;
- }
- };
- AlphaSet AlphaSet::operator*(AlphaSet& set)
- {
- AlphaSet result;
- result.bin = bin & set.bin;
- return result;
- };
- ostream& operator<<(ostream& out, AlphaSet& set)
- {
- unsigned bit = 1;
- int i = 0;
- for (i; i < 26; i++)
- {
- if ((set.bin & bit) > 0)
- out << (char)('a' + i);
- bit = bit << 1;
- }
- return out;
- }
- AlphaSet& AlphaSet::operator ~(){
- bin = ~bin;
- return (*this);
- }
- int main(int argc, char* argv[])
- {
- if (argc != 3)
- return 1;
- AlphaSet x(argv[1]);
- AlphaSet y(argv[2]);
- AlphaSet z;
- z = (~x) * (~y);
- cout << z << endl;
- return 0;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement