Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Привести пример программы по обработке строк.

Читайте также:
  1. CALL — Вызов подпрограммы
  2. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  3. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  4. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  5. CИТУАЦИОННЫЕ ЗАДАЧИ С ПРИМЕРАМИ РЕШЕНИЯ
  6. V. Подготовка материала к обработке
  7. VI. ПРИМЕРНАЯ МЕТОДИКА ОБУЧЕНИЯ УПРАЖНЕНИЯМ КУРСА СТРЕЛЬБ

Строка в С++ это массив символов, ограниченный признаком конца строки, которым служит символ '\0'. Массивы символов широко используются в программировании, так как общение пользователя с программой ведётся в основном с помощью использования текстовых сообщений. char s[100] - должен создать строку длинной от 0 до 99 символов, т.к. из 100 символов, выделенных под массив, один занимает признак конца строки. Данный символ может занимать любую позицию в строке, отсюда следует то, что строки могут иметь длину, изменяемую в ходе работы программы. Если s[0]='\0', то s - сдержит строку нулевой длины, то есть пустую строку.

Строковые константы представляются в тексте программы последовательностью символов, заключенной в “”. Под строковые константы в памяти выделяется массив, в котором располагются все символы и признак конца '\0'. Пустая строка хранится как один символ '\0'. Кроме этого в записи строки могут присутствовать символы такие, как, например, '\n' - переход на новую строку или '\t' - табуляция. Чаще всего для размещения строковой константы в массиве используется его инициализация.

Для вывода строк можно использовать опреатор <<. При вводе с помощью оператора >> в строку будут включены все символы до первого пробела. Для ввода строк, содержащих любые символы лучше всего использовать ф-цию getline(char s[], int n), которая читает из входного потока не более n-1 символов и помещает их в массиве s. Чтение символов прекращается при поступлении символа '\n' или при достижении конца файла (CTRL+Z).

Существует библиотека функций для работы со строками. Прототипы функций описаны в заголовочном файле string.h. В описаниях используется обозначение size_t для типа unsigned int. Данное обозначение вводится инструкцией

typedef unsigned int size_t; которая имеется в стандартных заголовочных файлах. Оператор typedef вводит новое названия для типа данных. Тип size_t используется для величин, которые не могут быть отрицательными, например, для размеров объектов.

size_t strlen(const char s[]); возвращает длину строки s. Завершающий символ ’\0’ не учитывается.

char *strcpy(char *dest, const char *src); копирует строку src в строку dest, возвращает указатель на копию dest.

int strcmp(const char *s1, const char*s2); посимвольно сравнивает строки s1 и s2, причем сравниваются коды символов. Возвращается значение <0, если первый несовпадающий символ s1 имеет код меньше чем код соответствующего символа s2, значение >0, если первый несовпадающий символ s1 имеет больший код, чем символ s2 и 0 при полном совпадении строк.

size_t strlen (const char s[]) - возвращает длину строки s[ ], символ конца строки '\0' - не учитывается. const указывает, что s - не изменяется внутри функции, инструкция size_t применяется, когда нужно указать размеры величины, которая не может быть отрицательной.

char* strcpy (char* dest, const char* stc) - копирует строку dest и возвращает указатель на dest.

int strcmp(const char* s1, const char* s2) - посимвольно сравнивает строки s1 и s2, причём сравниваются коды соответствующих символов, возвращает разницу кодов первых несовпадающих символов сравниваемых строк.

//функция реверсирования строки: Реверсирование – это перестановка символов строки в обратном порядке, при этом меняются местами первый и последний символы, второй и предпоследний и т.д.

#include <iostream.h> #include <string.h>

void revers(char s[])//revers: перестановка символов s в обратном порядке

{ int i, j; //i - номер первого, второго,...символа, j - номер последнего, предпоследнего,...символа

char tmp; //Промежуточная переменная для обмена символов

for(i = 0, j = strlen(s) -1; i < j; i++, j--)

tmp = s[i], s[i] = s[j], s[j] = tmp; }

int main()

{ const int MAX = 100;

char s[MAX]; //Память под строку

cout << "Введите строку:\n";

cin.getline(s, MAX);

revers(s); //Вызов функции реверсирования строки

cout << "Реверсированная строка:\n";

cout << s;

return 0;}

В заголовке цикла for(i = 0, j = strlen(s) -1; i < j; i++, j--) использован оператор запятая, чтобы объединить в одно выражение два выражения присваивания i = 0 и j = strlen(s) -1. Аналогично сделано с выражениями i++ и j--. В теле цикла три выражения присваивания объединяются запятой в единое выражение. Запятые, которые разделяют аргументы функций, переменные в описаниях и т.д., не имеют отношения к операции запятая и не обеспечивают вычислений слева направо.

 


Дата добавления: 2015-07-08; просмотров: 486 | Нарушение авторских прав


Читайте в этой же книге: Строки символов представляют последовательность произвольных символов, заключенных в двойные кавычки, например, “Строка символов”, “String of characters”. | Процесс создания программы. Исходная и рабочая программы. Препроцессор, компилятор, редактор связей. | Целые типы в языке Си и операции над ними. Представление целых констант в различных системах счисления. | Операторы присваивания. Приоритет и порядок выполнения операторов. Привести примеры. | Цикл do…while. Программа вычисления квадратного корня. | Функции. Формальные параметры и фактические аргументы. Способ передачи аргументов в функции. Привести пример. | Массивы как аргументы функций. Функция сортировки массива методом пузырька. | Макросы. Макросы с параметрами. | Указатели и адреса. Привести пример программы, использующей указатели. | Указатели и массивы. Адресная арифметика. |
<== предыдущая страница | следующая страница ==>
Символы и символьные константы. Представления символов. Ввод и вывод символов. Привести примеры.| Препроцессор. Директивы препроцессора.

mybiblioteka.su - 2015-2024 год. (0.005 сек.)