Студопедия Главная Случайная страница Обратная связь

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

M:String;





 

Строки

Строка – последовательность символов, заканчивающаяся символом ‘\0’.

Всякий раз, когда компилятор встречается с чем-то, заключенным в двойные кавычки, он определяет это как строковую константу. Символы, заключенные в кавычки, плюс завершающий символ ‘\0’, записываются в последовательные ячейки памяти.

Если нужно включить в строку символов символ двойной кавычки, ей должен предшествовать символ обратной косой черты.

Например:

char* s = “Symbol\””;

Инициализация строк

char s1[] = “Hello”;

char s2[] = {‘H’, ‘e’, ‘l’, ‘l’, ‘o’};

char *s3 = “Hello”;

char s4[100 ] = “Hello”;

Функции для работы со строками

atof double atof(char *str); Преобразует строку str в вещественное число двойной точности
atoi int atoi(char * str); Преобразует строку str в десятичное целое
atol long atoll(char *str); Преобразует строку str в длинное десятичное целое
itoa char *itoa(int v, char* str, int baz) Преобразует целое v в строку str (2 <=baz<=36). Для отрицательного числа baz=10
ltoa char ltoa(long v, char* str, int baz); Преобразует длинное целое v в строку str
strcat char *strcat(char *sp, char* si); Приписывает строку si к строке sp
strchr char *strchr(char *str, char c); Находит в строке str первое вхождение символа c.
strcmp int strcmp(char *str1, char*str2); Сравнивает строки str1 и str2. Результат отрицателен, если str1<str2, равен нулю, если str1=str2, и положителен, если str1 > str2
strcpy char *strcpy(char* sp, char* si); Копирует строку si в строку sp
strcspn int strcspn(char *str1, char* str2); Определяет длину первого сегмента строки str1, содержащего символы, не входящие во множество символов str2
strlen unsigned strlen(char *str); Вычисляет длину строки str
strlwr char *strlwr(char *str); Преобразует буквы верхнего регистра в строке в буквы нижнего регистра
stnucat char *strncat(char *sp, char* si, int kol); Приписывает kol символов строки si к строке sp
strncmp int strncmp(char *str1, char* str2, int kol); Сравнивает строки str1 и str2, причем рассматриваются только первые kol символов. Результат отрицателен, если str1<str2, равен нулю, если str1=str2, и положителен, если str1 > str2
strncpy char *strncpy(char *sp, char *si, int kol); Копирует kol символов строки si в строку sp
strpbrk char *strpbrk(char * str1, char* str2); Находит в строке str1 первое появление любого из множества символов, входящих в строку str2
strrchr char *strrchr(char* str, char c); Находит в строке str последнее вхождение символа c
strspn int strspn(char *str1, char *str2); Определяет длину первого сегмента строки str1, содержащего символы из множества символов, входящих в строку str2
strupr char *strupr(char *str); Преобразует буквы нижнего регистра в строке str в буквы верхнего регистра
ultoa int *ultoa(unsigned long v, char *str, int baz); Преобразует беззнаковое длинное целое v в строку str

Функции находятся в библиотеках <stdlib.h> и <string.h>

 

Функции для выделения и освобождения памяти

calloc void *calloc(size_t, size_t); Возвращает указатель на начало области оперативной памяти для размещения n элементов по m байт каждый. При неудачном завершении возвращает NULL.
free void free(void *bl); Освобождает ранее выделенный блок оперативной памяти с адресом первого байта bl
malloc void *malloc(size_t s); Возвращает указатель на блок памяти длиной s байт. При неудачном завершении возвращается значение NULL
realloc void * realloc(void *bl, size_t ns); Изменяет размер ранее выделенной памяти с адресом начала bl на ns байт

Функция calloc аналогична функции malloc, но дополнительно инициализирует выделенную память байтом '\0' (0, NULL).

Функции, перечисленные в таблице, определены в библиотеке <stdlib.h>

Обработка строковой информации

Прежде всего нам нужны переменные для хранения этой информации. Можно воспользоваться простым типом данных Char ("символ") и составным типом String ("строка"). Переменная типа Char в качестве своего значения может иметь один символ. Например, если имеется описание:

 

Var

C:Char;

то возможны следующие присваивания: C:='a'; C:='1'; C:='?'.

Понятно, что для работы с большими объемами символьной информации этот тип не применим. Поэтому, на практике чаще всего используют тип String. В качестве своего значения переменная этого типа может содержать любую последовательность символов длиной от 0 до 255.

В общем виде переменная строкового типа описывается так:


Рис.1. Общий вид описания строковой переменной

Например, описание:

 

Var

Line:String[20];

говорит о том, что значением переменной Line может быть любая последовательность символов длиной от 0 до 20.

 

Замечания.
1. Максимальное число, которое может находиться в квадратных скобках, равно 255. Таким образом, максимальная длина строки 255 символов.
2. При описании переменной строкового типа можно не указывать число в квадратных скобках:

Var

M:String;

Такая запись эквивалентна следующей:

Var

M:String[255];

Доступ к символам строки осуществляется также, как к элементам одномерного массива: указанием имени строковой переменной и в квадратных скобках номера символа в строке. Например, Line[5]. Номер элемента может задаваться выражением, для которого справедливы все требования, налагаемые на индекс элемента массива. Таким образом, строки очень похожи на одномерные массивы, однако, в отличие от массивов, строки допускают присваивание вида: Line:='ель';. При использовании конструкции вида: ReadLn(Line); можно задать значение всей строке.

 

 







Дата добавления: 2015-08-30; просмотров: 327. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации...

Роль органов чувств в ориентировке слепых Процесс ориентации протекает на основе совместной, интегративной деятельности сохранных анализаторов, каждый из которых при определенных объективных условиях может выступать как ведущий...

Лечебно-охранительный режим, его элементы и значение.   Терапевтическое воздействие на пациента подразумевает не только использование всех видов лечения, но и применение лечебно-охранительного режима – соблюдение условий поведения, способствующих выздоровлению...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

Тема: Изучение приспособленности организмов к среде обитания Цель:выяснить механизм образования приспособлений к среде обитания и их относительный характер, сделать вывод о том, что приспособленность – результат действия естественного отбора...

Studopedia.info - Студопедия - 2014-2025 год . (0.013 сек.) русская версия | украинская версия