Форум программистов, компьютерный форум CyberForum.ru

Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке - C++

Восстановить пароль Регистрация
 
SaJIaManDer
Сообщений: n/a
11.01.2014, 10:59     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #1
как написать собственный с++ класс для ввода и вывода строки, подсчета количества символов в строке
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 10:59     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке
Посмотрите здесь:

C++ Упорядочить строки матрицы по возрастанию количества заданных символов в каждой строке
Написать программу подсчета пробелов, символов табуляции и новой строки C++
C++ Написать программу ввода и вывода строки на C++
C++ Написать программу на языке С + + реализующая класс содержащий поля данных и методы ввода и вывода данных
Написать программу для подсчета количества одинаковых цифр в массиве из 5-ти элементов C++
Создать контейнер класса с методами включения и удаления строки, очистки текста, подсчета количества символов C++
Программа для подсчета количества цифр в строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sergei60
47 / 28 / 4
Регистрация: 10.06.2012
Сообщений: 334
11.01.2014, 11:52     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #2
Вот похожий вопрос на нашем форуме,может поможет Ввод и вывод строки собственного класса
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
11.01.2014, 20:11     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <cstring>
 
class String
{
    char *str;
public:
    String()
    {
        *str = '\0';
    }
    String (char* tmp)
    {
        str = new char[strlen(tmp)+1];
        strcpy (str,tmp);
    }
    ~String()
    {
        delete [] str;
    }
    int length()const
    {
        return strlen(str);
    }
    operator char* ()
    {
        return str;
    }
};
 
int main()
{
    String str = "Stroka";
    std::cout <<"Length: " <<str.length() <<'\n'
              <<str <<'\n';
    return 0;
}
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,886
12.01.2014, 00:53     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #4
Цитата Сообщение от MicM Посмотреть сообщение
*str = '\0';
Разыменовываем неинициализированный указатель?
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
12.01.2014, 12:24     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #5
Цитата Сообщение от rangerx Посмотреть сообщение
Разыменовываем неинициализированный указатель?
Ну да, сглупил, с указателями относительно недавно разбираться начал
Так правильнее будет?
C++
1
2
3
4
5
String()
{
    str = new char[1];
    strcpy (str,"\0");
}
Добавлено через 5 минут
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstring>
#include <cctype>
 
class String
{
    char *str;
public:
    String()
    {
        str = new char[1];
        strcpy (str,"\0");
    }
    String (char* tmp)
    {
        str = new char[strlen(tmp)+1];
        strcpy (str,tmp);
    }
    ~String()
    {
        delete [] str;
    }
    int length()const
    {
        return strlen(str);
    }
    operator char* ()
    {
        return str;
    }
    void setString (char* c)
    {
        delete [] str;
        str = new char[strlen(c)+1];
        strcpy (str,c);
    }
};
 
int main()
{
    String str = "Stroka!";
    std::cout <<"Length: " <<str.length() <<'\n'
              <<str <<'\n';
    String s;
    s.setString("Stroka");
    std::cout <<s <<' ' <<s.length() <<'\n';
    return 0;
}
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,886
13.01.2014, 16:52     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #6
Цитата Сообщение от MicM Посмотреть сообщение
Так правильнее будет?
Так по крайней мере будет работать. Вот только ф-я strcpy здесь ни к чему, собственно как и явное указание \0 в строковом литерале.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
13.01.2014, 17:56     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #7
rangerx,
Цитата Сообщение от rangerx Посмотреть сообщение
Вот только ф-я strcpy здесь ни к чему
Да, вы правы, заменил на это, ведь в данном случае указатель уже будет инициализирован.
C++
1
*str = '\0';
Цитата Сообщение от rangerx Посмотреть сообщение
собственно как и явное указание \0 в строковом литерале.
Здесь не соглашусь, ведь если создаётся объект этого класса, то по умолчанию строка вроде как должна быть пуста,а без указания '\0' будет выводится мусор. У меня на компиляторе мусор выводится в этом случае.
KOPOJI
Модератор
 Аватар для KOPOJI
16576 / 6517 / 400
Регистрация: 12.06.2012
Сообщений: 19,536
Завершенные тесты: 1
13.01.2014, 18:09     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #8
MicM, а может, лучше просто добавить проверку, заносили туда что-то или нет, или добавить "дефолтное" значение для строки - в методе (т.е., совместить два конструктора) меньше кода - больше кислорода ?
C++
1
2
3
4
5
String (char *tmp = "\0")
{
    str = new char[strlen(tmp)+1];
    strcpy (str,tmp);
}
rangerx
1918 / 1527 / 139
Регистрация: 31.05.2009
Сообщений: 2,886
13.01.2014, 18:37     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #9
Цитата Сообщение от MicM Посмотреть сообщение
Здесь не соглашусь, ведь если создаётся объект этого класса, то по умолчанию строка вроде как должна быть пуста,а без указания '\0' будет выводится мусор.
Я имел в виду не строку str, а строковый литерал "\0". Даже пустая строка вида "" содержит \0, явно его указывать не нужно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.01.2014, 21:10     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке
Еще ссылки по теме:

[Символьная строка] После ввода количества символов в символьной строке, программа прекращает работу C++
Написать программу для подсчета общего количества строк в исходном коде C++
C++ Написать программу для подсчета общего количества строк в исходном коде
Написать функцию для определения количества цифровых символов в заданной текстовой строке C++
Написать функцию для подсчета нецифровых символов в строке C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4382 / 3225 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
13.01.2014, 21:10     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке #10
Вот вам всем шикарный вариант реализации строки:
Абстрактный тип данных
Yandex
Объявления
13.01.2014, 21:10     Написать собственный класс для ввода и вывода строки, подсчета количества символов в строке
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru