Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
DaryaFret
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 26
1

Добавление в массив типа char * одного элемента типа char

09.11.2015, 19:23. Просмотров 726. Ответов 8
Метки нет (Все метки)

Дан класс Строка, содержащий указатель на char - адрес динамически выделенной для размещения символов строки памяти и длину строки. Нужен конструктор, который в качестве параметра принимает символ.
Никак не могу понять, как это сделать
C++
1
2
3
4
5
class STROKA
{
char *s;
int dlina;
}
+ конструктор по умолчанию,не соображу, что можно задать по умолчанию
п.с. сильно не кидайтесь, я только учусь
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2015, 19:23
Ответы с готовыми решениями:

Условие типа if( масив типа char[x] [y] != переменная типа char) не срабатывает
Создал функцию ChangeWay(). Все, кроме if(map !=ar) (обе переменные типа char) работает...

Аргумент типа (const char*) несовместим с параметром типа (char*). Как исправить?
#include "Table.h" #include "Contour.h" #include "TwoShape.h" #include <iostream> int...

Как полю класса типа char* присвоить значение типа *char
Проблема в строчке 46 (не пинайте сильно за формат кода и за говнокод) #include "stdafx.h" ...

Как присвоить значение одного из элементов массива типа char переменной типа int?
С++ начал буквально только что так что буду благодарен за терпение и понимание ) Сразу оговорюсь...

Аргумент типа char (*)[1000] несовместим с параметром типа char**
Здравствуйте! Есть вот такая структура: #define max 1000 struct expr { char s; int...

8
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
09.11.2015, 19:30 2
C++
1
2
3
4
5
6
STROKA(char c)
{
//...
}
 
STROKA(): s(NULL), dlina(0) {}
0
DaryaFret
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 26
09.11.2015, 19:34  [ТС] 3
я понимаю, что нужно STROKA(char c)
а вот сам конструктор сделать не могу
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
09.11.2015, 19:36 4
Здесь же делать нечего.
C++
1
2
3
4
5
6
7
STROKA(char c)
{
    s = new char[2];
    s[0] = c;
    s[1] = '\0';
    dlina = 1;
}
1
09.11.2015, 19:36
DaryaFret
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 26
09.11.2015, 19:45  [ТС] 5
оу,щет
я просто не сделала первую строчку
спасибо большое
0
Eva Rosalene
Ladybug
4129 / 1602 / 305
Регистрация: 06.01.2013
Сообщений: 4,194
Завершенные тесты: 2
09.11.2015, 19:45 6
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
class str {
  char * buf;
  size_t len;
 
  void swap(str&);
public:
  str( );
  str(char);
  str(const char *);
  str(const str&);
 
 
  str& operator = (str);
  ~str( );
}
 
void str::swap(str& s) {
   std::swap(buf, s.buf);
   std::swap(len, s.len);
}
 
str::str( ) : buf(NULL), len(0) { }
str::str(char a) : buf(new char[2]), len(1) {
   char[0] = a;
   char[1] = 0;
}
 
str::str(const char * s) : buf(new char[strlen(s) + 1]), len(strlen(s)) {
   strcpy(buf, s);
}
 
str::str(const str&) : buf(new char[str.len + 1]), len(str.len) {
   if (str.buf != NULL)
     strcpy(buf, str.buf);
}
 
str& str::operator = (str s) {
   s.swap(*this);
   return this;
}
 
str::~str( ) {
   if (buf != NULL) delete[] buf;
}
В этом роде.
0
DaryaFret
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 26
11.11.2015, 19:00  [ТС] 7
а можно, пожалуйста, еще за помощью обратиться?
если мне в производном классе нужно изменить конструктор, получающий на вход указатель на строку, так, чтобы он из получаемой строки выбрал только цифры, а остальные символы заменял 0, как это сделать?
заранее спасибо.
0
nmcf
6535 / 5758 / 2622
Регистрация: 14.04.2014
Сообщений: 24,498
11.11.2015, 19:47 8
Сначала вызови родительский конструктор, затем внутри циклом пройди по строке и замени нулями всё, что не цифра.
0
DaryaFret
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 26
17.11.2015, 08:50  [ТС] 9
Спасибо большое
Помогите, пожалуйста, снова :с
Чет я совсем запарилась
C++
1
2
3
4
5
6
7
8
9
10
11
 DESYAT operator - (DESYAT &str)
    {
        //DESYAT C;
        int i=0;
        int j=0,res=0; 
        i=atoi(str.d);
        j=atoi(d);
        res=j-i;
        ...
        return C;
    }
d указатель на строку char

Мне нужно переопределить - для двух десятичных строк

Добавлено через 11 часов 19 минут
уже не надо,разобралась,спасибо
0
17.11.2015, 08:50
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2015, 08:50

Аргумент типа char** не совместим с параметром типа const char*
Программа должна позволять заносить в структуру данные и выводить на экран информацию о поездах,...

Читать строку типа string из файла, разбить ее на массив слов типа char
Нужно сделать так что бы строчка вида "<слово1>:<слово2>:<слово3>:<слово4>" , считывалась и каждое...

Сформировать массив типа bool из массива типа char
Доброго времени суток! После ввода элементов массива вылазит ошибка "Необработанное исключение:...


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

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

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