![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 18.04.2012
Сообщений: 3
|
![]()
Определить класс-строку. В класс включить два конструктора: для определения класса строки строкой символов и путем копирования другой строки (объекта класса строки). Предусмотреть функции слияния двух строк и функцию подсчёта предложений в строке.
проблема в том, что если я ввиду строчку где предложение заканчивается на 2 и более знаков препинания, программа считает это как не одно предложение,а столько сколько я поставил знаков препинания Вот мой код // klassy.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <string> #include <time.h> using namespace std; /* Определить класс-строку. В класс включить два кон-структора: для определения класса строки строкой сим-волов и путем копирования другой строки (объекта клас-са строки). Предусмотреть функции слияния двух строк и функцию подсчёта предложений в строке. */ class MyString { private: string m_container; public: MyString(const char* src) : m_container(src) {}; MyString(const MyString& src) : m_container(src.m_container) {}; public: /// подсчёт предложений в строке unsigned int numSentences() { unsigned int n = 0; /// предложение кончается знаком препинания /// бежим по всем символам строки и считаем знаки препинания for (unsigned int i = 0; i < m_container.length(); i++) { char simvol = m_container[i]; if (simvol == '!' || simvol == '?' || simvol == '.') { n = n + 1; } } return n; } /// добавляем к нашей строке ещё одну (слияние) void add(const MyString& second) { m_container += second.m_container; } /// печатает на экран строку void print() { cout << m_container; } }; int main() { char line[256]; /// массивчик куда читать будем cout << "Enter line, 255 chars max!" << endl; cin.getline(line,255); /// считываем в массивчик с клавиатуры MyString str(line); /// создаём строку cout << "constructor with const char* : "; str.print(); cout << endl; cout << "copy constructor : "; MyString(str).print(); cout << endl; char line2[256]; /// массивчик куда читать будем cout << "Enter line, 255 chars max!" << endl; cin.getline(line2,255); /// считываем в массивчик с клавиатуры MyString str2(line2); /// создаём строку2 str.add(str2); /// слияние двух строк cout << "str+str2 = "; str.print(); cout << endl; /// вывести число предложений cout << "num sentences in str+str2 = " << str.numSentences() << endl; return 0; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Возникла проблема с++ | GanJIk | Помощь студентам | 2 | 28.02.2012 23:45 |
Возникла проблема... | ycropp | HTML и CSS | 4 | 16.11.2011 18:43 |
возникла проблема | dvarv | Общие вопросы C/C++ | 7 | 19.04.2011 21:03 |
Возникла проблема! | Файзулка | Помощь студентам | 1 | 22.11.2009 21:42 |