Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 117; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.202.54 (0.014 с.) |