Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
char *strupr (char *st); – преобразует символы строки st нижнего регистра в символы верхнего регистра, другие символы не затрагиваются.
char *strrev (char *st); – записывает символы в строке st в обратном порядке (реверсирует строку).
char *strchr (char *st, int c); – определяет первое вхождение символа c в строку st; возвращает указатель на символ в строке st, который соответствует введенному образцу.
char *strchr (char *st, int c); – находит последнее вхождение символа c в строку st; eсли символ c в строке не обнаружен – возвращает 0, иначе возвращает указатель на последний символ в строке st, который соответствует заданному образцу.
Поиск подстроки в строке
strspn (const char *st1, const char *st2 ); – возвращает количество символов от начала строки st1, совпадающих с символами строки st2, где бы они не находились в st2.
char *strstr (const char *st1,const char *st2); – функция ищет в строке st1 первое вхождение st2 и возвращает указатель на первый символ, найденный в st1 из подстроки st2; если строка st2 не обнаружена в st1 – функция возвращает 0.
В случае необходимости определения последнего вхождения, надо вначале реверсировать строку с помощью функции strrew.
char *strtok (char *st, const char *dlm); – разбивка строки на лексемы (сегменты), ограниченные символами включенными в состав параметра dlm. Этот параметр может содержать любое количество разных ограничителей – признаков границ лексем; после выделения лексемы в строку st помещается символ '\0'.
Последующие вызовы функции strtok() должны быть с первым аргументом NULL. Они будут возвращать указатель на другие, имеющиеся в st лексемы. Каждый раз после завершения выделения лексем в ее конце вместо разделительного символа помещается символ '\0'. После того, как в строке не останется ни одной лексемы, функция возвращает NULL. Для сохранения исходной строки ее надо записать в резервную переменную. Эту функцию удобно использовать для разбивки предложения на слова или любые другие сегменты.
tolower (s) ¾ преобразует символ s к нижнему регистру;
toupper (s) ¾ преобразует символ s к верхнему регистру;
3.1.2 Тип строк AnsiString
В C++ Builder тип строк AnsiString реализован как класс, объявленный в файле vcl/dstring.h. Это строки с нулевым символом в конце. При объявлении переменных типа AnsiString инициализируются пустыми строками.
Для AnsiString определены операции отношения. ==, !=, >, <, >=, >=. Сравнение производится с учетом регистра.
Для AnsiString определены операции присваивания =, += и операция склеивания строк (конкатенации) +. Определена также операции индексация []. Индексы начинаются с 1. Например, если S1 = "Привет", то S1[1] вернет "П" и т.д.
Тип AnsiString используется для ряда свойств компонентов C++ Builder. Например, для таких, как свойства Text окон редактирования, свойства Caption меток и разделов меню и т.д. Этот же тип используется для отображение отдельных строк в списках строк типа TStrings. Таким образом, постоянно имея дело с этими свойствами, вы постоянно работаете с AnsiString.
Рассмотрим некоторые примеры работы с AnsiString. Следующий оператор демонстрирует конкатенацию (склеивание) двух строк:
Label1->Caption = Edit1->Text + ' ' + Edit2->Text;
Преобразование строки AnsiString в строку (char *) осуществляется функцией c_str() без параметров, возвращающей строку с нулевым символом в конце, содержащую текст той строки AnsiString, к которой она применена.
Возможно и обратное преобразование строки (char *) в строку AnsiString. Для этого этого используется функция AnsiString (char *S); которая возвращает строку типа AnsiString, содержащую текст, записанной в строке S, являющейся аргументом функции.
3.2. Пример программы
Задание: Реализовать программу, которая подсчитывает количество слов в предложении. Реализовать интерфейс программы: меню, просмотр исходного теста и результат обработки программы.
Рис. 3.1 Интерфейс программы
Код программы:
#include <vcl.h>
#include <string.h>
#include <stdio.h>
#pragma hdrstop
#include "Unit1.h"
//--------------------------------------------------------------------------#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//--------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender)
{
char *tk, *s =" ";
char s1[25];
if (strlen(Edit1->Text.c_str())==0) // проверка на пустую строку
{
ShowMessage("Отсутствуют исходные данные !!!");
Edit2->Text = ""; // очистка поля
}
else
{
int i = 0; // счетчик количества слов в строке
strcpy(s1,Edit1->Text.c_str()); // Функция c_str() преобразует тип AnsiString в char
tk = strtok (s1, s);
while (tk != NULL)
{
tk = strtok (NULL,s);
i++;
}
Edit2->Text = "Количество слов в строке " + IntToStr(i); // вывод результата на экран
}
}
3.3. Варианты индивидуальных задач
Во всех задачах, где не приводится конкретный вид текстовых данных
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.