Как создать программу с текстом

В этой статье вы научитесь обрабатывать строки на языке C++. Вы научитесь их объявлять, инициализировать и использовать для различных операций ввода и вывода.

Строка – это набор символов. В языке программирования С++ обычно используются два типа строк:

  • Строки, являющиеся объектами строкового класса (строковый класс стандартной библиотеки C++).
  • C-strings (струны C-стиля).

C-strings

В программировании на C набор символов хранится в виде массивов, это также поддерживается в программировании на С++. Отсюда и название C-strings.

C-строки – это массивы типа char, оканчивающиеся нулевым символом, то есть 0 (значение ASCII нулевого символа равно 0).

Как определить C-strings?

char str[] = «C++»;

В приведенном выше коде str – это строка, содержащая 4 символа.

Хотя “C++” имеет 3 символа, нулевой символ 0 добавляется в конец строки автоматически.

Альтернативные способы определения строки

char str[4] = «C++»; char str[] = ; char str[4] = ;

Как и в случае с массивами, необязательно использовать все пространство, выделенное для строки. Например:

Как сделать программу переводчик с нуля.


char str[100] = «C++»;

Пример 1: для чтения слова

Программа на C++ для отображения строки, введенной пользователем:

#include using namespace std; int main() < char str[100]; cout > str; cout > str; cout

Enter a string: C++ You entered: C++ Enter another string: Programming is fun. You entered: Programming

Обратите внимание, что во втором примере отображается только «Programming» вместо «Programming is fun».

Оператор if . else в C++

Это потому, что оператор извлечения >> работает, как scanf() в C++ и считает, что промежуток ” ” имеет завершающий символ.

Пример 2: для чтения строки текста

Программа на С++ для чтения и отображения всей строки, введенной пользователем:

#include using namespace std; int main()

Enter a string: Programming is fun. You entered: Programming is fun.

Для чтения текста, содержащего пробелы, можно использовать функцию cin.get. Эта функция принимает два аргумента.

Первый аргумент – это имя строки (адрес первого элемента строки), а второй аргумент – это максимальный размер массива.

В приведенной выше программе str – это имя строки, а 100 – максимальный размер массива.

Строковый объект

В С++ вы также можете создать строковый объект для хранения строк.

В отличие от массивов символов, строковые объекты не имеют фиксированной длины и могут быть расширены в соответствии с вашими требованиями.

Пример 3: с использованием строкового типа данных

#include using namespace std; int main() < // Declaring a string object string str; cout

Enter a string: Programming is fun. You entered: Programming is fun.

В этой программе объявлена строка str . Затем строка запрашивается у пользователя.

Читайте также:
Секретные коды телефонов программа

Оператор switch в C++

Вместо использования функции cin >> или cin.get() вы можете получить введенную строку текста с помощью getline().

Как преобразовать ТЕКСТ В ГОЛОС. Программа для преобразования ТЕКСТА В РЕЧЬ.

Функция getline() принимает входной поток в качестве первого параметра, то есть cin и str в качестве местоположения сохраняемой строки.

Передача строки в функцию

Строки передаются в функцию точно так же, как массивы.

#include using namespace std; void display(char *); void display(string); int main() < string str1; char str[100]; cout void display(char s[]) < cout void display(string s)

Enter a string: Programming is fun. Enter another string: Really? Entered string is: Programming is fun. Entered char array is: Really?

В приведенной выше программе предлагается ввести две строки.

Они хранятся в str и str1 соответственно, где str – массив символов, а str1 – строковый объект.

Затем у нас есть две функции display(), которые выводят строку в строку.

Единственное различие между двумя функциями – это параметр. Первая функция display() принимает в качестве параметра массив символов, а вторая – строку. Этот процесс известен как перегрузка функции.

  • Цикл for в C++
  • Преобразование типов в C++
  • Оператор if … else в C++

Источник: calmsen.ru

1 Разработка приложения «Текстовый редактор»

Среда Microsoft Visual Studio 2013 позволяет создавать не только консольные приложения, но и приложения, характеризующиеся наличием графического пользовательского интерфейса, навыки разработки которых, могут быть получены при создании приложения «Текстовый редактор». Данное приложение предназначено для создания новых файлов, открытия и отображения содержимого уже существующих файлов, а также редактирования и сохранения содержимого этих файлов.

1.1 Создание нового проекта

Запустите среду MS Visual Studio 2013. Выберите пункт главного меню Файл | Создать | Проект. после чего в открывшемся окне (рисунок 1) укажите тип проекта (Projecttypes:VisualC#), выберите шаблон (Templates: Приложение Windows Forms), задайте место расположения вашего нового проекта (Location), укажите название проекта (Name).

1.2 Проектирование формы приложения

В состав только что созданного проекта входит только одна форма, которая по умолчанию носит название Form1, исходный вид данной экранной формы приведен на рисунке 2. Именно так будет выглядеть форма приложения при запуске откомпилированной программы на выполнение.

Следующим шагом будет являться изменение некоторых свойств созданной формы. В окне Properties(свойства) найдите строкуStartPositionи выберите опцию CenterScreen. В свойстве Text вместо Form1 впишите следующую строку: Текстовый редактор.

1.2.1 Создание меню

Для создания меню на главную форму приложения поместите компонент MenuStrip (расположен в разделе Menus с пунктом «.

Значок » нужен для связывания с пунктом меню так называемых «горячих» клавиш. Если перед какой-либо буквой в названии пункта меню стоит такой значок, то при отображении меню эта буква оказывается подчеркнутой, и нажатие на соответствующую буквенную клавишу при нажатой клавише Alt приведет к активизации соответствующего пункта меню.

Помимо этого, для работы с меню с помощью клавиатуры используются клавиши быстрого доступа (рисунок 3). Подходящую комбинацию клавиш можно выбрать, установив значение свойства ShortcutKeys.

Читайте также:
Как запустить программу в кодблокс

Выполните настройку клавиш быстрого доступа, как показано на рисунке 3.

Источник: studfile.net

# Entry — Однострочное текстовое поле

Элемент Entry представляет поле для ввода текста. Конструктор Entry принимает следующие параметры:

Entry(master, options)

где master — ссылка на родительское окно, а options — набор следующих параметров:

  • bg: фоновый цвет
  • bd: толщина границы
  • cursor: курсор указателя мыши при наведении на текстовое поле
  • fg: цвет текста
  • font: шрифт текста
  • justify: устанавливает выравнивание текста. Значение LEFT выравнивает текст по левому краю, CENTER — по центру, RIGHT — по правому краю
  • relief: определяет тип границы, по умолчанию значение FLAT
  • selectbackground: фоновый цвет выделенного куска текста
  • selectforeground: цвет выделенного текста
  • show: задает маску для вводимых символов
  • state: состояние элемента, может принимать значения NORMAL (по умолчанию) и DISABLED
  • textvariable: устанавливает привязку к элементу StringVar
  • width: ширина элемента

from tkinter import * root = Tk() root.title(«Welcome to entry app») text = Entry(root, width=50) text.pack() root.mainloop()
1
2
3
4
5
6
7
from tkinter import * root = Tk() root.title(«Welcome to the second entry app») text1 = Entry(root, width=20) text1.pack() text2 = Entry(root, width=50) text2.pack() root.mainloop()
1
2
3
4
5
6
7
8
9
from tkinter import * root = Tk() root.title(«Welcome to the second entry app») label_login = Label(root, text=»Login») label_login.pack() text1 = Entry(root, width=50) text1.pack() label_pass = Label(root, text=»Password») label_pass.pack() text2 = Entry(root, width=50) text2.pack() button = Button(root, text=»Enter») button.pack() root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from tkinter import * def check_pass(): if entry_login.get() and entry_pass.get(): label_welcome.configure(text=»Welcome. «) else: label_welcome.configure(text=»Please enter the loginnand the password.») root = Tk() root.title(«Welcome to the second entry app») label_login = Label(root, text=»Login») label_login.pack() entry_login = Entry(root, width=10) entry_login.pack() label_pass = Label(root, text=»Password») label_pass.pack() entry_pass = Entry(root, width=10, show=’%’) entry_pass.pack() button = Button(root, text=»Enter», command=check_pass) button.pack() label_welcome = Label(root) label_welcome.pack() root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

Для работы с текстом, находящимся в текстовом поле, необходимо создать переменную в которой будут храниться значения, которые будут выводиться или считываться в текстовом поле. Общий вид программы зададим следующий:

from tkinter import * root = Tk() root.title(«Welcome to entry app») message = StringVar() message.set(«Any») text = Entry(root, width=10, textvariable=message) text.pack() root.mainloop()
1
2
3
4
5
6
7
8
9
10
11

Здесь команда message.set(«Any») — устанавливает значение переменной равное строке «Any». И параметру textvariable присваивается значение переменной message.

Исследуйте переменную message добавив недостающий следующий код:

message = StringVar() print(message) print(type(message)) message.set(«Any») print(message) print(message.get())
1
2
3
4
5
6

Подумайте над последовательностью и работой команд message.set() и message.get() . Что происходит при выполнении каждой из команд?

Определим элемент Entry и по нажатию на кнопку выведем его текст в отдельное окно с сообщением:

from tkinter import * from tkinter import messagebox def show_message(): messagebox.showinfo(«GUI Python», message.get()) root = Tk() root.title(«GUI на Python») root.geometry(«300×250″) message = StringVar() message_entry = Entry(textvariable=message) message_entry.pack() message_button = Button(text=»Click Me», command=show_message) message_button.pack() root.mainloop()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

Для вывода сообщения здесь применяется дополнительный модуль messagebox, содержащий функцию showinfo() , которая собственно и выводит введенный в текстовое поле текст. Для получения введенного текста используется StringVar .

Читайте также:
Программа реестра очистка кэша

Теперь создадим более сложный пример с формой ввода:

from tkinter import * from tkinter import messagebox def display_full_name(): messagebox.showinfo(«GUI Python», name.get() + » » + surname.get()) root = Tk() root.title(«GUI на Python») name_label = Label(text=»Введите имя:») name_label.grid(row=0, column=0, sticky=»w») name = StringVar() name_entry = Entry(textvariable=name) name_entry.grid(row=0, column=1) surname_label = Label(text=»Введите фамилию:») surname_label.grid(row=1, column=0, sticky=»w») surname = StringVar() surname_entry = Entry(textvariable=surname) surname_entry.grid(row=1, column=1) message_button = Button(text=»Click Me», command=display_full_name) message_button.grid(row=2, column=1) root.mainloop()
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

# Методы Entry

Методы для виджетов — это встроенные функции, которые позволяют менять объект или получать информацию о нем.

Виджет Entry имеет ряд методов. Основные из них:

  • insert(index, str) : вставляет в текстовое поле строку по определенному индексу;
  • get() : возвращает введенный в текстовое поле текст;
  • delete(first, last=None) : удаляет символ по индексу first . Если указан параметр last , то удаление производится до индекса last . Чтобы удалить до конца, в качестве второго параметра можно использовать значение END .

Используем методы в программе:

from tkinter import * from tkinter import messagebox def clear(): name_entry.delete(0, END) surname_entry.delete(0, END) def display(): messagebox.showinfo(«GUI Python», name_entry.get() + » » + surname_entry.get()) root = Tk() root.title(«GUI на Python») name_label = Label(text=»Введите имя:») name_label.grid(row=0, column=0, sticky=»w») name_entry = Entry() name_entry.grid(row=0,column=1) name_entry.insert(0, «Tom») surname_label = Label(text=»Введите фамилию:») surname_label.grid(row=1, column=0, sticky=»w») surname_entry = Entry() surname_entry.grid(row=1, column=1) surname_entry.insert(0, «Soyer») display_button = Button(text=»Display», command=display) display_button.grid(row=2, column=0) clear_button = Button(text=»Clear», command=clear) clear_button.grid(row=2, column=1) root.mainloop()
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

При запуске программы в оба текстовых поля добавляется текст по умолчанию:

name_entry.insert(0, «Tom») surname_entry.insert(0, «Soyer»)

Кнопка Clear очищает оба поля, вызывая метод .delete() :

def clear(): name_entry.delete(0, END) surname_entry.delete(0, END)

Вторая кнопка, используя метод .get() , получает введенный текст:

def display(): messagebox.showinfo(«GUI Python», name_entry.get() + » » + surname_entry.get())

Как видно из примера, нам необязательно обращаться к тексту в Entry() через переменные типа StringVar() , можно это сделать напрямую через метод .get() .

# Упражнения

  1. Создайте окно с текстовым полем Entry , и задайте значение текстового поля: «Текстовое поле вводит и выводит текст только одной строкой», используя метод .insert() .
  2. Используя переменную StringVar() . Создайте окно с текстовым полем и двумя кнопками:
    • кнопкой «Paste», при нажатии на которую, в текстовом поле выводится текст: «The button clicked!».
    • кнопкой «Clear», при нажатии на которую, текст в текстовом поле стирается.
    • кнопкой «Paste», при нажатии на которую, в текстовом поле выводится текст: «The button clicked!».
    • кнопкой «Clear», при нажатии на которую, текст в текстовом поле стирается.

    text from entry

    • при нажати на первую кнопку, должны выводиться значения первого и второго полей в консоль:

    The first line The second line

    • при нажатии на вторую кнопку, должны выводиться значения первого и второго полей в консоль с пояснениями в виде:

    «Значение первого поля: » «Значение второго поля: »

    Источник: learn4kid-python.firebaseapp.com

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru