Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
#1

Динамическая строка и перегрузка операций - C++

14.02.2012, 10:54. Просмотров 1855. Ответов 9
Метки нет (Все метки)

Всем доброго дня!!!Если есть минутка, помогите сделать эти задания!буду очень благодарен!!

Вот сама задача!!!!
1. Длина L четная, то выделяется подстрока со второго пробела.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2012, 10:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Динамическая строка и перегрузка операций (C++):

Динамическая строка и перегрузка операций - C++
Общая постановка. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области...

Класс динамическая строка и перегрузка операций - C++
Форумчане, привет :) Нужна помощь!:help: Не могу найти, точнее их ликвидировать ошибки.. :( Общая постановка. Пользовательский класс...

"динамическая строка" и перегрузка операций (класс) - C++
Добрый день! Прошу помочь написать,подсказать,что исправить в программе по заданию: Пользовательский класс String должен содержать...

Перегрузка операций - C++
C++ Перегрузка операций.. Помоги написать прогу Определить класс для работы с квадратной матрицей. Получить величину к одним из...

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

Перегрузка операций - C++
Добрый день форумчане, помогите решить задачку Перегрузить 8 операторов для класса Вот пример класса class Money{ unsigned long...

9
zss
Модератор
Эксперт С++
6871 / 6433 / 2153
Регистрация: 18.12.2011
Сообщений: 16,912
Завершенные тесты: 1
14.02.2012, 13:16 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char s[100]="11 222 3333   5555",s2[100]="";
int L=strlen(s);
if(L%2==0)
{
    int cb=0;
    int j=0;
    for(int i=0;i<L;i++)
    {
         if(s[i]=' ')cb++;
         if(cb>=2)
            s2[j++]=s[i];
    }
    s2[j]=0;
}
1
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
14.02.2012, 18:21  [ТС] #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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream.h>
#define SIZE 100 //длина строки по умолчанию
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <istream.h>
class X{
char *str; 
char *str_return;
public:
X(); //конструктор по-умолчанию
X(char*); //конструктор, которому можно передавать параметр
~X(); //деструктор
char* Run(); //метод, выполняющий поставленную задачу. 
void Set(char*);
friend void print(X&); //функция-друг печати
friend ostream& operator<<(ostream&,X&); //перегрузка оператора вывода
friend istream& operator>>(istream&,X&); //перегрузка оператора ввода
friend char* Run(X&); //функция-друг, выполняющий поставленную задачу.
};
X::X(){
str=new char[SIZE]; 
str[0]='\0';        
str_return=new char[SIZE];
str_return[0]='\0';
};
X::X(char *s){
str=new char[SIZE];
strcpy(str,s);
str_return=new char[SIZE];
str_return[0]='\0';
};
X::~X(){
delete[] str;
cout<<"...destructor has been called"<<endl;
};
void X::Set(char* s){
for (unsigned int i=0;i<strlen(s);i++) 
str[i]=s[i];
str[i]='\0';
};
char s[100]="11 222 3333   5555",s2[100]="";
int L=strlen(s);
if (L%2==0)
{
    int cb=0;
    int j=0;
    for (int i=0;i<L;i++)
    {
        if (s[i]=" ")cb++;
        if (cb>=2)
            s2[j++]=s[i];
    };
    s2[j]=0;
};
char* Run(X &obj){return obj.Run();};
void print(X &obj){cout<<obj.str<<" "<<obj.str_return<<endl;};
ostream& operator<<(ostream &stream,X &ob) {
stream << ob.str ; 
return stream;
};
istream &operator>>(istream &stream,X &ob){
stream >> ob.str;
return stream;
};
void main (void){
char s[265];
 
cout<<"Type anything and press \"Enter\":"<<endl;
cin.getline(s,256); //считываем полностью всю строку
X str(s); //доступ к методам класса непосредственно через переменную,
//начальное значение устанавливаем через конструктор
cout<<"You have type:"<<endl;
print(str);
cout<<"Output string:"<<endl;
cout<<Run(str)<<endl; 
cout<<"Type anything and press \"Enter\":"<<endl;
cin.getline(s,256);
X *pstr; //доступ к методам класса через указатель
pstr=new X();
pstr->Set(s);
cout<<"You have type:"<<endl;
print(*pstr);
cout<<"Output string:"<<endl;
cout<<Run(*pstr)<<endl;
delete pstr;
};
В 43 и 44 строке ошибки:
syntax error: missing ";" before "if"
syntax error: missing ";" before "{"
missing function header (old-style formal list?)

Добавлено через 14 минут
help!!!help!!!help!!!

Добавлено через 23 минуты
help!!!help!!!help!!!
0
raptor02
1 / 1 / 0
Регистрация: 26.04.2010
Сообщений: 24
14.02.2012, 18:30 #4
Со строки 42 к строке 55 у тебя код не привязан к чему то.
Строки 42, 43 делают инициализацию но со строки 44 мусор для компилятора, вот он и ругается.
0
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
14.02.2012, 18:38  [ТС] #5
Это получается перед char поставить { надо?
0
raptor02
1 / 1 / 0
Регистрация: 26.04.2010
Сообщений: 24
14.02.2012, 18:41 #6
Нет, надо код строки 42-55 включить в обработку для функции которая будет его использовать.
0
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
14.02.2012, 19:00  [ТС] #7

а как это реализовать)?

Добавлено через 13 минут
или надо ввести: char* X::Run()
?

Добавлено через 4 минуты
help!!!help!!!help!!!
0
raptor02
1 / 1 / 0
Регистрация: 26.04.2010
Сообщений: 24
14.02.2012, 19:09 #8
Если не ошибаюсь, нужно реализовать алгоритм:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
char s[100]="11 222 3333   5555",s2[100]="";
int L=strlen(s);
if (L%2==0)
{
        int cb=0;
        int j=0;
        for (int i=0;i<L;i++)
        {
                if (s[i]=" ")cb++;
                if (cb>=2)
                        s2[j++]=s[i];
        };
        s2[j]=0;
}
в функции: char* Run()
0
Дмитрий12
1 / 1 / 0
Регистрация: 19.02.2011
Сообщений: 70
14.02.2012, 20:35  [ТС] #9
А как записать то???
Вот чем вопрос))не как не могу(((
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6955 / 3238 / 322
Регистрация: 04.12.2011
Сообщений: 8,931
Записей в блоге: 5
14.02.2012, 22:00 #10
Цитата Сообщение от Дмитрий12 Посмотреть сообщение
C++
1
2
for (int i=0;i<L;i++)
 { if (s[i]=" ")cb++; if (cb>=2) s2[j++]=s[i]; };
Кавычки за закрывающей }; <- необходимость или излишество
Похоже Ваш if(L%2==0) несъедобен. Цифра 0 даже в редакторе как буква. Закоментируйте снизу до момента определения
C++
1
int L=strlen(s);
и попробуйте вывести L...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2012, 22:00
Привет! Вот еще темы с ответами:

Перегрузка операций - C++
Данная программа выполянет операции с дробями. Но у меня возникла проблема. Я создал сервисную функцию которая сокращает дробь. Ну дело том...

Перегрузка операций - C++
Не могу понять в чем ошибка. Нужно вводитьномер в формате (123) 456-789 Но почему то только возвращает число 123 #include...

Перегрузка операций - C++
Уважаемые программисты! Помогите новичку! Мне нужно написать программу, в которой реализуется разреженная матрица переменной размерности,...

Перегрузка операций - C++
Задание у меня перегрузить операции: + добавить элемент в множество; * пересечение множеств; int() мощность множества. Вот...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru