Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <ctype.h>
- using namespace std;
- //a felhasználó mondatainak tárolására szolgáló osztály
- class UserInput{
- string originalSentence;
- vector <string> words;
- char ending; //a mondatvégi irásjel: ! . vagy ? vagy netán semmi
- public:
- //konstruktor
- UserInput(){
- ending = 'u'; //mint unknown
- }
- //ha az adott string nem tartalmaz mondatvégi írásjelet, true értéket ad vissza, ellenkező esetben false értéket
- bool valid(string str){
- bool result = true;
- for(int i = 0;i < str.length(); i++){
- if(str[i] == '.' || str[i] == '!' || str[i] == '?')
- result = false;
- }
- return result;
- }
- void setSentence(){
- for(int i = 0; i < words.size(); i++){
- originalSentence += words[i];
- if(i+1 != words.size())
- originalSentence += ' ';
- }
- //végül jöhet a mondatvégi írásjel
- if(ending != 'u')//tehát ha van ténylegesen lezáró írásjel(nem hagyták el)
- originalSentence += ending;
- }
- void getInput(){
- string temp;
- while(true){
- cin >> temp;//bekérjük a következő stringet
- if(valid(temp)){//ha érvényes, el is mentjük
- words.push_back(temp);
- }
- else{//különben pedig az utolsó elemét elmentjük mint mondatvégi irásjelet, a string többi részét pedig elmentjük
- ending = temp[temp.length() - 1];
- string result = "";
- for(int i = 0; i < temp.length() - 1 ; i++)
- result += temp[i];
- words.push_back(result);
- break;
- }
- //ha entert ütöttek, kilépünk a ciklusból
- if(cin.get() == '\n'){
- break;
- }
- }
- //a szavakből összeállítja a teljes mondatot
- setSentence();
- }
- //a szavakat jeleníti meg
- void const displayWords(){
- cout <<"Words in the sentence: " << endl;
- for(int i = 0, n = words.size(); i < n; i++)
- cout << words[i] <<endl;
- }
- //a szavak számát adja vissza
- int const getNumberOfWords(){return words.size();}
- //az összeállított teljes mondatot adja vissza
- string const getSentence(){return originalSentence;}
- };
- int main()
- {
- UserInput input;
- input.getInput();
- input.displayWords();
- string str = input.getSentence();
- cout <<str<<endl;
- cout<<input.getNumberOfWords()<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement