Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Копирование и конкатенация строк.Содержание книги
Поиск на нашем сайте strcpy ( str1, str2 ) – копирует (побайтно) содержимое строки str 2 в строкуstr1. Массив str1должен быть достаточно большим, чтобы в него поместилась строка str2. Если места мало, то компилятор не выдаёт предупреждения или указания на ошибку, выполнение программы не прерывается, но это может привести к порче других данных или самой программы (т.е. неправильной работы программы в дальнейшем). Синтаксис функции:
char* strcpy (char* str1, const char* str2) str1, str2- указатели на строки. Пример 12: копирование всей строки и её фрагмента. При копировании фрагмента производится коррекция значения указателя на строку. #include <stdio.h> #include <conio.h> #include <string.h> void main() { char str1[20]="Проверка копирования"; char str2[20]; char str3[20]; char* ptr=str1; // в str2 копируется часть строки str1 // (идентификатор str1 является адресом) ptr+=9; // в ptr адрес символа, начиная с которого(9) strcpy(str2,ptr); // производится копирование printf("\n %s",str2); strcpy(str3,str1); printf("\n %s",str3); getchar(); }
strncpy ( str1, str2,num ) – копирует num символов из строки str 2 в строкуstr1. Массив str1должен быть достаточно большим, чтобы в него поместилась строка str2. Если длина str1 меньше длины str2, то происходит урезание символов Синтаксис функции:
char* strncpy (char* str1, const char* str2, size_t num) str1, str2- указатели на строки; num - количество копируемых символов (тип size_t-безнаковое число).
char cLong[]=”012345678901234567890123456789”; char cShort[]=”abcdef”; strncpy(cLong, cShort,4); printf("\n %s", cLong); printf("\n %s", cShort);
В результате будет выведено: 012345678901234567890123456789 0123ef
strdup (S)- распределяет память, копирует в отведённую область строку, возвращает указатель на начало полученной строки-копии. Синтаксис функции:
char* strdup (const char* source)
Производится копирование строки str1 в строку str2. char* str1="Процедура не найдена"; char* str2; str2=strdup(str1);
Конкатенация (или присоединение) строк используется для образование новой строки символов. strcat (str 1, str 2) – содержимое строки, на которую указывает str2, присоединяется к содержимое строки, на которую ссылается str1. Возвращаемый функцией указатель str1 указывает на результирующую строку. При этом величина строкового массива str1 должен быть достаточной для хранения объединённой строки. Синтаксис функции:
char* strcat (char* str1, const char* str2) str1, str2- указатели на строки. Пример 13: строка str инициализируется с помощью функции копирования strcpy и дополняется подстрокой, используя функцию strcat. char str[81]; strcpy(str,”Для продолжения”); strcat(str,”нажмите клавишу”);
В результате будет выведена строка: ”Для продолжения нажмите клавишу” Определение длины строки. strlen (S)- определение длины строки. Синтаксис функции:
size_t* strlen (const char* string)
В качестве единственного параметра функция принимает указатель на начало строки string, вычисляет количество символов строки и возвращает полученное безнаковое целое число (size_t). Функция sizeof() возвращает на единицу меньше, чем отводится под массив (нет '\0'). char Str[]=”ABCDEFGHIJK”; unsigned int i; i=strlen(Str);
Сравнение строк strcmp (str 1, str 2) -посимвольное сравнение двух строк. Функция производит сравнение, различая прописные и строчные буквы. Синтаксис функции:
char* strcmp (const char* str1, const char* str2)
stricmp (str 1, str 2) -посимвольное сравнение двух строк. Функция производит сравнение, не различая прописные и строчные буквы. Синтаксис функции:
char* stricmp (const char* str1, const char* str2)
После сравнения строк str1,str2 данные функции возвращают в результате одно из следующих значений: · <0, если строка str1 меньше, чем str2; · =0, если строки эквивалентны; · >0, если строка str1 больше, чем str2.
Результат: i >0, т.к. прописные буквы имеют код символов меньше, чем те же символы в нижнем регистре Пример 14: #include <stdio.h> #include <conio.h> #include <string.h> void main() { char str1[]="Ошибка открытия базы"; char str2[]="Ошибка открытия Базы"; char str3[]="Sun"; char str4[]="sUN"; int i,j; i=strcmp(str1,str2); printf("\n 1 i=%d",i); /*Результат: i>0, т.к. прописные буквы имеют код символов меньше, чем те же символы в нижнем регистре */ j=stricmp(str3,str4); // только для латинского алфавита printf("\n 2 j=%d",j); getchar(); }
strncmp (str 1, str 2) -посимвольное сравнение определённого числа первых символов двух строк. Функция производит сравнение, различая прописные и строчные буквы. Синтаксис функции:
char* strncmp (const char* str1, const char* str2,size_t num)
strnicmp (str 1, str 2) -посимвольное сравнение двух строк. Функция производит сравнение, не различая прописные и строчные буквы. Синтаксис функции:
char* strnicmp (const char* str1, const char* str2,size_t num)
После сравнения строк str1,str2 данные функции возвращают в результате одно из следующих значений: · <0, если строка str1 меньше, чем str2; · =0, если строки эквивалентны; · >0, если строка str1 больше, чем str2.
Результат: i >0, т.к. прописные буквы имеют код символов меньше, чем те же символы в нижнем регистре Пример 15: #include <stdio.h> #include <conio.h> #include <string.h> void main() { char str1[]="Ошибка Открытия базы"; char str2[]="Ошибка открытия Базы"; char str3[]="Sun"; char str4[]="sUN"; int i,j; i=strcmp(str1,str2,12); printf("\n 1 i=%d",i); /*Результат: i<0, т.к. прописные буквы имеют код символов меньше, чем те же символы в нижнем регистре */ j=stricmp(str3,str4,2); // только для латинского алфавита printf("\n 2 j=%d",j); // результат =0 getchar(); }
Поиск символов. strnchr (str,’ c ’) –поиск символа с в строке string и в случае успешного поиска возвращает указатель на место первого вхождения символа в строку. Если указанный символ не найден, функция возвращает NULL. Поиск осуществляется с начала строки. Синтаксис функции:
char* strnchr (const char* string, int c) char str []="абвгдеёжзийкл"; char* pStr; pStr=strchr(str,’ж’);
В результате работы указатель pStr будет указывать на подстроку "жзийкл".
Функция strrchr осуществляет поиск заданного символа с конца строки, возвращает указатель на последний, совпадающий с заданным с с, символ в строке string. char str []="абвгдеёжзийкл"; char* pStr; pStr=strrchr(str,’и’); Указатель pStr будет указывать на подстроку "ийкл". Файлы. Понятие файла. Файл - это именованный объект, хранящий данные (программа или любая другая информация) на каком – либо носителе (дискете, винчестере, CD). Файл, как и массив, - это совокупность данных, поэтому они немного похожи. Существенные различия: 1. файлы, в отличие от массивов, располагаются не в оперативной памяти, а на жёстких дисках или на внешних носителях, хотя файл может располагаться на так называемом электронном диске (в оперативной памяти); 2. файл не имеет фиксированной длины, т.е. может увеличиваться и уменьшаться; 3. перед работой с файлом его необходимо открыть, а после работы – закрыть.
Текстовые и бинарные файлы. Различают два вида файлов: текстовые и бинарные. Текстовые файлы могут быть просмотрены и отредактированы с клавиатуры любым текстовым редактором и имеют очень простую структуру: последовательность ASCII-символов. Эта последовательность символов разбивается на строки, каждая из которых заканчивается кодами 13, 10 (возврат каретки, перевод строки). Примеры известных текстовых файлов: *.bat, *.c, *.asm. Бинарные файлы – это файлы, не имеющие структуры текстовых файлов. Каждая программа для своих бинарных файлов определяет собственную структуру.
|
||
|
Последнее изменение этой страницы: 2020-12-09; просмотров: 192; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.) |