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

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

Войти
Регистрация
Восстановить пароль
 
 
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
#1

Подскажите как сделать ввод с клавиатуры пользователем - C++

28.11.2013, 12:12. Просмотров 1114. Ответов 22
Метки нет (Все метки)

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
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
class String
{
private:
    char* str;
    int n; 
public:
    String(char* string = "")
    {
        n = strlen(string) + 1;
        str = new char[n];
        memcpy(str, string, n);
    }
 
    String(char* string, size_t size)  //ГЄГ®Г*ñòðóêòîð, ïîçâîëÿþùèé ñîçäГ*ГІГј ñòðîêó ГЁГ§ size ñèìâîëîâ
    {
        n = size + 1;
        str = new char[n];      
        memcpy(str, string, n * sizeof(char));
        str[size] = 0;
    }
 
    ~String()
    {
        if (str)
        delete str;
    }
 
    void print()
    {
        std::cout << str << std::endl;
    }
 
    int const getnum() //êîë-ГўГ® ñèìâîëîâ Гў ñòðîêå
    {
        return n - 1;
    }
 
    char const getchar(int n) // ñèìâîë ГЁГ§ ïîçèöèè n
    {
        return str[n - 1];
    }
 
    void upper()  // Гў âåðõГ*ГЁГ© ðåãèñòð
    {
        for (int i = 0; i < n; i++)
            str[i] = toupper(str[i]);
    }
 
    int const punctuation() // êîë-ГўГ® Г§Г*Г*êîâ ïðåïèГ*Г*Г*ГЁГї
    {
 int count = 0;
 for (int i = 0; i < n; i++)
 if (ispunct(str[i]))
    count++;
    return count;
    }
};
 
int main()
{ 
    
    String str("I!love!!!programming!");
    str.upper();
    str.print();
 
    std::cout << str.getnum() << std::endl;
    std::cout << str.punctuation() << std::endl;
    std::cout << str.getchar(1) << std::endl;
 
    system("PAUSE");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите как сделать ввод с клавиатуры пользователем (C++):

Как сделать ввод с клавиатуры? - C++
как сделать ввод с клавиатуры( фио,возраст,бал) и как сделать цикл вода даных 5 раз #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #include...

Как сделать ввод с клавиатуры? - C++
Подскажите, как переделать под ввод данных a и b с клавиатуры #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include...

Как сделать ввод элементов массива с клавиатуры? - C++
Всем привет. Препод пристал что бы я сделал так что пользователь задавал значение элементов с клавиатуры.Я слышал что можно с помощью...

_TCHAR szTestString[] = как сделать тут ввод с клавиатуры и возможно ли это - C++
Вот текст программы // Osi.cpp: определяет точку входа для консольного приложения. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Подскажите как сделать, например "для продолжения нажмите клавишу х" и дальше выводится результат с шагом заданым пользователем - C++
Подскажите как сделать, например &quot;для продолжения нажмите клавишу х&quot; и дальше выводится результат с шагом заданым пользователем

Как правильно заменить ввод данных простой на ввод с клавиатуры? - C++
#include &quot;stdafx.h&quot; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using namespace std; int _tmain(int argc, _TCHAR* argv) ...

22
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.11.2013, 17:36 #16
Цитата Сообщение от Мария1501 Посмотреть сообщение
А зачем сделано вот это?
Проверка работы второго конструктора.
1
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
28.11.2013, 17:52  [ТС] #17
Цитата Сообщение от Мария1501 Посмотреть сообщение
Всё, с этим ясно, можете еще проверить всё ли у меня по заданию сделано?
Создать класс для работы сo строками. Разработать элементы класса:
a. Поля:
• * указатель на char - хранит адрес динамически выделенной памяти;
• int n.
b. Конструктор, позволяющий создать строку из n символов.
c. Методы, позволяющие:
• подсчитать количество знаков препинания в строке;
• заменить в строке все строчные символы на прописные;
• прочитать символ из заданной позиции.
d. Свойства:
• возвращающее общее количество элементов в строке (доступное только для чтения);
• позволяющее установить значение поля, в соответствии с введенным значением строки с клавиатуры, а также получить значение данного поля (доступно для чтения и записи).
А в соответствии с заданием это обязательно?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.11.2013, 17:56 #18
Это я для себя сделал, а соответствует ли это заданию не знаю, сами думайте.
1
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
28.11.2013, 18:37  [ТС] #19
Цитата Сообщение от Мария1501 Посмотреть сообщение
Всё, с этим ясно, можете еще проверить всё ли у меня по заданию сделано?
Создать класс для работы сo строками. Разработать элементы класса:
a. Поля:
• * указатель на char - хранит адрес динамически выделенной памяти;
• int n.
b. Конструктор, позволяющий создать строку из n символов.
c. Методы, позволяющие:
• подсчитать количество знаков препинания в строке;
• заменить в строке все строчные символы на прописные;
• прочитать символ из заданной позиции.
d. Свойства:
• возвращающее общее количество элементов в строке (доступное только для чтения);
• позволяющее установить значение поля, в соответствии с введенным значением строки с клавиатуры, а также получить значение данного поля (доступно для чтения и записи).
А в соответствии с заданием это обязательно?

Добавлено через 54 секунды
спасибо хоть на этом

Добавлено через 6 минут
Свойство getchar на данный момент позволяет только вернуть символ (то есть чтение), но никак не записать его. Для того, чтобы можно было записывать в тот символ, который мы вернули, символ нужно возвращать не по значению, а по ссылке. После этого в главной программе можно будет написать следующую строчку кода (и она будет работать):
C++
1
str.getchar(1) = 'R';
Исправте это, пожалуйста, очень прошу
0
alsav22
28.11.2013, 18:57
  #20

Не по теме:

Я на сколько ваших вопросов уже ответил?

1
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
28.11.2013, 18:59  [ТС] #21
Извините пожалуйста, просто очень срочно нужно доделать, я пока сама не справляюсь, я в самых основах еще барахтаюсь, это последняя моя просьба.
0
Мария1501
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 29
28.11.2013, 19:01  [ТС] #22
А что вы хотите?
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.11.2013, 19:13 #23
C++
1
2
3
4
char& getchar(int n) // символ из позиции n
{
     return str[n - 1];
}
1
28.11.2013, 19:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2013, 19:13
Привет! Вот еще темы с ответами:

Как реализовать ввод многомерного массива пользователем с консоли? - C++
Где ошибка? Программа коопилируется, но не получается ввести значение массива. #include &lt;iostream&gt; #include &lt;cstdlib&gt; using...

Как считывать слова/цифры пока не закончился ввод пользователем - C++
Как считывать слова/цифры пока не закончился ввод пользователем

Как завершить ввод данных с клавиатуры - C++
Всем доброго времени суток. Я изучать С начал недавно.Изучаю при помощи &quot;Язык программирования С++.Вводный курс.&quot; Скажите как...

Как оформить ввод с клавиатуры названий? - C++
Есть задача Где я должен сравнить дни недели, если это дни от понедельника - четверг (1-4), то вывожу одно, если это 5 день, вывожу...


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

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

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