А как мне в своем коде изменить чтобы вместо «_» при наборе предложения можно ставить пробелы, пытаюсь вводить через консоль с пробелами: выводит и работает только с одним словом
Код | #include <iostream> #include <cstring> using namespace std;
class Line { private:
char *Line1; int length;
public:
Line() { length = 1; Line1 = new char[length]; Line1[length-1] = '\0'; }
Line(const char* L1) { length = strlen(L1)+1; Line1 = new char[length]; strcpy(Line1, L1); Line1[length-1] = '\0'; }
friend ostream& operator << (ostream& out , Line& l); friend istream& operator >> (istream & in, Line &l); Line operator - (char letter); bool operator == (Line l); int CountWordsInLine(); char* ReverseLine(); void DrawStar();
~Line() { delete [] Line1; } };
int Line::CountWordsInLine() { int Count=0; for(int i=0; i<length; i++) { if (Line1[i]==' ') Count++; } Count++; return Count; }
char* Line::ReverseLine() { for (int i=0; i<(length-1)/2; i++) { char temp = Line1[i]; Line1[i] = Line1[length-i-2]; Line1[length-i-2] = temp; } return Line1; }
void Line::DrawStar() { for (int i=0; i<45; i++) cout << '*'; cout << endl; }
istream & operator >> (istream & in, Line& l) { char *temper = new char[100]; in >> temper; l.length = strlen(temper)+1; temper[l.length-1] = '\0'; l.Line1 = new char[l.length]; strcpy(l.Line1, temper); l.Line1[l.length-1] = '\0'; return in; }
ostream& operator << (ostream& out, Line& l) { return out << l.Line1; }
Line Line::operator - (char letter) { char *temp = new char[length]; int i,j; for (i=0, j=0; i<length; i++) { if (Line1[i] != letter) { temp[j] = Line1[i]; j++; } } temp[j] = '\0'; return temp; }
bool Line::operator == (Line l) { int i, j; for (i=0, j=0; i<length-1, j<length-1; i++, j++) if (Line1[i] == l.Line1[j]) return true; return false; }
int main() { Line ln1; Line ln2("What's up niger"); cout << "enter sentence: "; cin >> ln1; cout << "normal sentece: " << ln1 << endl;
if(ln1 == ln2) cout << "sentences are equal" << endl; else cout << "sentences are not equal" << endl; cout << "number of words: " << ln1.CountWordsInLine() << endl; ln1.DrawStar(); cout << "enter letter: "; char temp; cin >> temp; cout << "without letter: " << ln1 - temp << endl; cout << "reversed sentence: " << ln1.ReverseLine() << endl; return 0; }
|
|