КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример. Строки и потоки ввода/вывода в С++BUILDER
Строки и потоки ввода/вывода в С++BUILDER 3.1. Строки В C++ Builder можно использовать следующие текстовые строки: символьные массивы типа char* языка С с нуль-символом (‘\0’) в конце; класс string из стандартной библиотеки C++; класс String (другое название AnsiString) из библиотеки VCL. Символьные массивы. В языке С строки представляют собой массив данных символьного типа, заканчивающийся символом ‘\0’. Для работы со строками в стандартную библиотеку языка С включен ряд функций, которые определены в заголовочном файле <string.h>. Например: strcpy() – копирование одной строки в другую; strcat() – добавление одной строки в конец другой; strcmp() – сравнение двух строк в лексикографическом порядке; strstr() – поиск в строке заданной подстроки; strupr() – преобразование символов строки к верхнему регистру; strlen() – определение длины строки без учета нуль-символа. Использование символьных массивов часто оказывается самым удобным при разработке приложений. Класс string языка C++. Класс string (название начинается со строчной буквы) представляет собой динамический массив и дает преимущества при выполнении операций соединения и обрезания строк, вычеркивания части строки, поиска комбинаций символов. Данный класс определен в заголовочном файле <cstring.h>. Класс string содержит несколько конструкторов, из которых приведем объявления следующих: 1) string(); 2) string(const string &s); 3) string(const char *cp); 4) string(const char *cp, size_t n); 5) string(const string &s, size_type start, size_type length); 6) string(size_type n, char c); Первый конструктор создает пустую строку. Второй конструктор является конструктором копирования. Третий конструктор создает строку, инициализированную С-строкой (нуль-символ в объект класса string не копируется). Четвертый конструктор создает строку, инициализированную не более чем n первыми символами С-строки. Пятый конструктор создает строку из другой строки, начиная с индекса start и содержащую не более чем length символов. Шестой конструктор создает строку, содержащую n символов c.
#include <iostream.h> #include <string.h> using namespace std; void main(){ // Создание пустой строки и ее вывод string str1; cout<<”str1: “<<str1<<endl; // Строка инициализируется С-строкой string str2(“My string”); cout<<”str2: “<<str2<<endl; // Используется конструктор string(const char *cp, size_t n) string str3(“Tekct”,4); cout<<”str3: “<<str3<<endl; // Выводится “Tekc” // Используется конструктор копирования string str4(str3); cout<<”str4: “<<str4<<endl; // Выводится “Tekc” // Используется конструктор string(const string &s, size_type start, // size_type length) string str5(str3, 2, 2); cout<<”str5: “<<str5<<endl; // Выводится “kc” // Используется конструктор string(size_type n, char c) string str7(5, ‘A’); cout<<”str7: “<<str7<<endl; // Выводится “AAAAA” }
Для объектов класса string перегружены следующие операции (операторы): = – присваивание. Данная операция (как и другие рассматриваемые ниже операции) перегружена с помощью нескольких функций-операторов, что позволяет выполнять присваивание строке класса string не только строку этого же класса, но и С-строку или символ. + – конкатенация строк. == – проверка строк на равенство. != – проверка строк на неравенство. < – меньше. Здесь и далее сравнение строк выполняется в лексикографическом порядке. <= – меньше или равно. > – больше. >= – больше или равно. [] – индексация. Обеспечивает доступ к элементам строки по индексу. Контроль выхода за пределы строки не выполняется. Отметим, что имеется метод at(int i), который также позволяет обеспечить доступ к символам строки, но он выбрасывает исключение out_of_range, если индекс i выходит за пределы строки. Индексация символов строки ведется с нуля. += – добавление к строке с изменением исходной строки. << – вывод строки. >> – ввод строки. Для сравнения строк класс string содержит также несколько перегруженных версий метода compare(), выполняющего сравнение строк в лексикографическом порядке: 1) int compare(const string &str) const; 2) int compare(size_t pos, size_t n, const string &str) const; 3) int compare(size_t pos1, size_t n1, const string &str, size_t pos2,size_t n2) const; 4) int compare(const const char *str) const; 5) int compare(size_t pos, size_t n, const char *str, size_t length) const; Здесь size_t является беззнаковым целочисленным типом, определенным в заголовочном файле <stdio.h>: typedef unsigned size_t; Метод возвращает отрицательное значение, если вызывающая строка предшествует строке, с которой выполняется сравнение; 0 – если строки совпадают; положительное значение – если вызывающая строка следует за другой строкой, участвующей в сравнении. Версия 2) метода сравнивает строку str с n символами вызывающей строки, начиная с позиции pos. Если значение параметра n выходит за пределы вызывающей строки, то строка рассматривается от позиции pos до ее конца. Если позиция pos выходит за пределы вызывающей строки, то выбрасывается исключение out_of_range. Версия 3) позволяет выполнить сравнение подстроки вызывающей строки (характеризуется параметрами pos1 – индекс первого элемента строки и n1 – длина подстроки) с подстрокой строки str (характеризуется аналогичными параметрами pos2 и n2). Если значения pos1 или pos2 выходят за пределы соответствующих строк, то выбрасывается исключение out_of_range. Версии 4) и 5) предназначены для сравнения вызывающей строки или ее подстроки (характеризуется параметрами pos и n) с С-строкой или ее начальной подстрокой, содержащей length символов.
Дата добавления: 2014-12-27; Просмотров: 1383; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |