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

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

Войти
Регистрация
Восстановить пароль
 
ShookTrooper
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 3
#1

Символьная строка в функции get_string() не выводится в методе print - C++

19.03.2012, 20:59. Просмотров 650. Ответов 4
Метки нет (Все метки)

Введенная символьная строка в функции get_string() не выводится в методе print.
В чем ошибка??? Заранее спасибо!

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
# include <iostream.h>
# include <conio.h>
# include <math.h>
# include <stdio.h>
# include <stdlib.h>
//------------------------------------------------------------------------------------------------------------------------------------------------------------------
class String
{
    private:
        char* str;
        int n;
 
    public:
    //default constructor
    String () {}
 
    //copy constructor
    String (String & s)
    {
        n=s.n;
            set_string(s.str);
    }
 
    //constructor with params
    String(int size, char *s)
    {
        n=size;
         str=new char[n];
         for (int i=0; i<n; i++)
            str[i]=s[i];
    }
 
      //destructor
      ~String()
      {
            delete []str;
      }
 
      void set_string(char* s)
      {
         for (int i=0; i<n; i++)
            str[i]=s[i];
      }
 
      void print_str()
      {
         cout<<endl;
         for (int i=0;i<n;i++)
        cout<<str[i];
        }
};
 
char* get_string(int k)
{
    char* t;
   t=new char[k];
   gets(t);
    return t;
}
 
 
 
int main()
{
    int size=80;
 
   String ob(size,get_string(size));
   ob.set_string(get_string(size));
   ob.print_str();
    getch(); return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2012, 20:59     Символьная строка в функции get_string() не выводится в методе print
Посмотрите здесь:

3. Дана символьная строка. Подсчитать в ней количество вхождений букв r, k, t. C++
C++ Создать класс Str (символьная строка). Переопределить оператор присвоения.
Символьная строка C++
C++ Является ли перевертышем символьная строка
C++ Дана символьная строка,написать программу которая..
C++ Дано символьная строка. Найти наибольшую последовательность букв к
Дана символьная строка А (вводится). Проверить можно ли из них составить слово В C++
C++ символьная строка
Дана символьная строка. Подсчитать в ней количество вхождений букв г, k, t. ( не используя встроенные функции) C++
Символьная строка. Поменять местами второе слово с передпоследним C++
C++ Дано символьная строка. Определить количество пробелов этой строке
C++ З клавиатуры ввести символьная строка

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3057 / 1859 / 195
Регистрация: 13.01.2012
Сообщений: 7,064
19.03.2012, 21:29     Символьная строка в функции get_string() не выводится в методе print #2
как вариант - вы записываете в поток ровно 80 символов вне зависимости от фактического положения нулевого символа окончания строки. соответственно в поток могут пойти неопределенные символы за пределами динамически выделенной памяти и все это может сопровождаться широким спектром чудес начиная от "кракозябликов" и заканчивая "access violation"
ShookTrooper
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 3
19.03.2012, 21:54  [ТС]     Символьная строка в функции get_string() не выводится в методе print #3
хм.. ну если в майне перед getch() вставить
C++
1
puts(get_string(size));
, то выведет правильно же

Добавлено через 20 минут
up
up
up
vxg
Модератор
3057 / 1859 / 195
Регистрация: 13.01.2012
Сообщений: 7,064
20.03.2012, 13:47     Символьная строка в функции get_string() не выводится в методе print #4
сказано -
Цитата Сообщение от vxg Посмотреть сообщение
может сопровождаться широким спектром чудес
почему же просто не попробывать сделать по человечески?
kazak
3032 / 2353 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
20.03.2012, 14:10     Символьная строка в функции get_string() не выводится в методе print #5
Цитата Сообщение от ShookTrooper Посмотреть сообщение
void set_string(char* s)
{
for (int i=0; i<n; i++)
str[i]=s[i];
}
Как минимум
C++
1
for (int i=0; i <= strlen(s); i++)
плюс нужно учитывать, что длина s должна быть меньше длины str.
Yandex
Объявления
20.03.2012, 14:10     Символьная строка в функции get_string() не выводится в методе print
Ответ Создать тему
Опции темы

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