Презентация Массивы символов в С. Прикладное программирование онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Массивы символов в С. Прикладное программирование абсолютно бесплатно. Урок-презентация на эту тему содержит всего 67 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Массивы символов в С. Прикладное программирование
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:67 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:4.59 MB
- Просмотров:178
- Скачиваний:1
- Автор:неизвестен
Слайды и текст к этой презентации:
№13 слайд
Содержание слайда: Ввод строки
char S [ 6 ] ; // объявляет и инициализирует строку длиной в 5 символов
cout << ”Input string:” ; // выводит на экран приглашение
cin.getline ( S , 6 , ’.’ ) ; // ввод строки длиной не более 5 символов, завершается точкой
cout <<”You string: ”<< S <<’\n’ ; // выводит строку на экран
№15 слайд
Содержание слайда: ОПРЕДЕЛЕНИЕ ДЛИНЫ СТРОК
Данная функция в качестве единственного параметра принимает указатель на начало строки string, вычисляет количество символов строки и возвращает полученное беззнаковое целое число типа size_t.
Функция strlen ( ) возвращает значение на единицу меньше, чем отводится под массив по причине резервирования места для символа ’\0’.
№16 слайд
Содержание слайда: ОПРЕДЕЛЕНИЕ ДЛИНЫ СТРОК
Следующий фрагмент демонстрирует использование функции:
strlen ( ):
char S [ ] = ”0123456789” ; // объявляет и инициализирует строку длиной 10 символов
cout << ”Lenght=” << strlen ( S ) << ’\n’ ; // выводит на экран Length = 10
cout << ”Size =” << sizeof ( S ) << ’\n’ ; // выводит на экран Size = 11
№18 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
Функция strcpy ( ) имеет прототип:
Char * strcpy ( char* str1 , const char* str2 ) ;
и выполняет побайтное копирование символов из строки, на которую указывает str2, в строку по указателю str1. Копирование прекращается только в случае достижения нуль-терминатора строки str2, поэтому перед копированием необходимо удостовериться, что длина str2 меньше или равна длине str1.
№19 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
Например, следующий фрагмент копирует в строку S значение строки "String copy":
char S [21] ; // объявляет строку длиной 20 символов
strcpy ( S , ”String copy” ) ; // копирование строки "String copy" в строку S
cout<<S<<’\n’ ; // вывод на экран строки S
№20 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
следующий фрагмент скопирует в str2 окончание строки str1:
char S1 [21] = ”String copy” ; // объявляет и инициализирует строку длиной 20 символов
char S2 [21] ; // объявляет строку длиной 20 символов
char* pS = S1 ; // объявляет указатель на строку и
// инициализирует его адресом начала строки S1
cout << pS << ’\n’ ; // выводит на экран строку "String copy"
pS += 7 ; // увеличивает адрес pS на 7 байт
cout << pS << ’\n’ ; // выводит на экран строку "copy"
strcpy ( S2 , pS ) ; // копирует строку "copy" в строку S2
cout << S2 << ’\n’; // выводит на экран строку "copy"
№21 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
Копирование части строки. Функция strncpy
Функция strncpy ( ) отличается от strcpy ( ) тем, что в ее параметрах добавляется еще один аргумент, указывающий количество символов, не больше которого будет скопировано. Ее синтаксис имеет вид:
char* strncpy ( char* strl , const char* str2 , size_t num ) ;
№22 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
В приведённом фрагменте из строки sLong в строку sShort скопировано четыре первых символа с затиранием исходного значения начала короткой строки.
char sLong [ ] = ”0123456789” ; // объявляет и инициализирует строку длиной 10 символов
char sShort [ ] = ”abcdef” ; // объявляет и инициализирует строку длиной 6 символов
№24 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
Копирование строки с выделением памяти. Функция strdup
Функция strdup ( ) в качестве параметра получает указатель на строку-источник, осуществляет распределение памяти, копирует в отведенную область строку и возвращает указатель на начало полученной строки-копии. Синтаксис функции следующий:
char* strdup ( const char* source ) ;
№25 слайд
Содержание слайда: КОПИРОВАНИЕ СТРОК
В следующем примере производится копирование строки, на которую указывает указатель pS1, в строку, на которую указывает указатель pS2:
char* pS ; // объявляет указатель на строку
pS = strdup (”File not found” ) ; // выделяет память для строки длиной 14 символов и
// инициализирует указатель pS адресом этой строки
№27 слайд
Содержание слайда: Конкатенация строк
Конкатенация (или присоединение) строк используется для образования новой строки
символов. Для этой операции стандартная библиотека предлагает функции strcat ( ) и strncat ( ).
Присоединение строки. Функция strсat
Функция strсat ( ) имеет синтаксис:
char* strcat ( char* str1 , const char* str2 ) ;
№28 слайд
Содержание слайда: Конкатенация строк
В результате работы функции содержимое строки, на которую указывает str2, присоединяется к содержимому строки, на которую ссылается str1. Возвращаемый функцией указатель str1 указывает на результирующую строку. При этом размер строкового массива str1 должен быть достаточным для хранения объединенной строки.
№29 слайд
Содержание слайда: Конкатенация строк
В следующем примере строка S инициализируется с помощью функции копирования strcpy ( ) и дополняется подстрокой, используя функцию strcat ( ):
char S [26] ; // объявляет строку длиной 25 символов
strcpy ( S , ”Press any key ”) ; // инициализирует строку
№31 слайд
Содержание слайда: Конкатенация строк
Присоединение части строки. Функция strncat.
Функция strncat ( ) также осуществляет конкатенацию строк, однако, присоединяет лишь указанное в
третьем параметре количество символов (беззнаковое целое): Функция strnсat ( ) имеет синтаксис:
char* strncat ( char* str1 , const char* str2 , size_t num) ;
№32 слайд
Содержание слайда: Конкатенация строк
Функция возвращает указатель на начало сформированной строки str1. При этом размер строкового массива str1 должна быть достаточным для хранения объединенной строки. Следующий пример производит конкатенацию строки str1 с двумя первыми символами подстроки str2:
№33 слайд
Содержание слайда: Конкатенация строк
char S1 [31]= ”Press any key ” ; // объявляет и инициализирует
char S2 [31]= ”to continue” ; // две строки длиной 30 символов
strncat ( S1 , S2 , 2 ) ; // добавляет два первых символа строки S2 в конец строки S1
cout << S1 << ’\n’ ; // выводит на экран строку “Press any key to”
№34 слайд
Содержание слайда: Сравнение строк
Из двух строк меньше та, у которой меньше код первого несовпадающего символа. Ниже приводятся функции, выполняющие посимвольное сравнение двух строк.
Функция strcmp ( ) производит сравнение строк, различая прописные и строчные буквы и имеет синтаксис:
int strcmp ( const char* S1 , const char* S2 ) ;
№35 слайд
Содержание слайда: Сравнение строк
В качестве параметров функция получает указатели на строки, которые сравниваются. После сравнения строк S1 и S2 данная функция возвращает в результате одно из следующих значений:
< 0 – если строка S1 меньше, чем S2;
= 0 – если строки эквивалентны;
> 0 – если строка S1 больше, чем S2.
№36 слайд
Содержание слайда: Сравнение строк
Следующий пример иллюстрирует работу функции strcmp ( ):
char S1 [ ] = ”Иванов” ; // объявляет и инициализирует
char S2 [ ] = ”Иванцов” ;
int i = strcmp ( S1 , S2 ) ; // объявляет переменную типа int и инициализирует её
cout << ”i = ” << i << ’\n’ ; // выводит на экран значение переменной
№37 слайд
Содержание слайда: Сравнение строк
cout << S1 << ’\t’ ; // выводит на экран Иванов
cout<<( i>0 ? ’>’ :( i<0 ? ’<’ : ’=’)) ; // выводит на экран символ ‘<’ , ’>’ или ‘=’
cout << ’\t’ << S2 << ’\n’ ; // выводит на экран Иванцов
В результате переменной i будет присвоено отрицательное значение, так как строка S1 меньше, чем строка S2.
№38 слайд
Содержание слайда: Сравнение строк
Библиотека string.h также содержит функции, которые сравнивают две строки, не различая регистра
символов. Прототипы этих функций имеют вид:
int stricmp ( const char *S1 , const char *S2 ) ;
int strcmpi ( const char *S1 , const char *S2 ) ;
int strncmp ( const char *S1 , const char* S2 , size_t n ) ;
№39 слайд
Содержание слайда: Преобразование строк
Элементы символьных строк могут быть преобразованы из одного регистра в другой. Для этого используются стандартные функции _strlwr и _strupr.
Функция strlwr принимает в качестве параметра указатель на строку символов, преобразует эту строку к нижнему регистру (строчные символы) и возвращает указатель на полученную строку. Данная функция
имеет следующий прототип: char* strlwr(char* str) ;
№41 слайд
Содержание слайда: Преобразование строк
Функция strupr объявлена следующим образом:
char* strupr ( char* str ) ;
Данная функция преобразует строку символов, на которую указывает str, в прописные буквы (к верхнему регистру). В результате работы функции возвращается указатель на полученную строку.
№44 слайд
Содержание слайда: Поиск символов
Функция нахождения символа в строке strchr имеет следующий прототип:
char* strchr ( const char* string , int c )
Данная функция производит поиск символа с в строке string и в случае успешного поиска возвращает указатель на место первого вхождения символа в строку. Если указанный символ не найден, функция возвращает NULL. Поиск символа осуществляется с начала строки.
№46 слайд
Содержание слайда: Поиск символов
pS = strchr ( S , 'U' ) ; // возвращает указатель на первый пробел
while ( pS ) // до тех пор, пока указатель pS не равен NULL
{
pS++ ; // увеличение указателя на единицу
cout << pS << '\n' ; // вывод на экран символов от найденного пробела до конца строки
pS = strchr ( pS , ' ' ) ; // поиск следующего пробела
}
№47 слайд
Содержание слайда: Поиск подстрок
При необходимости поиска в одной строке последовательности символов, заданной в другом символьном массиве (подстроке), стандартная библиотека string.h предлагает воспользоваться одной из следующих функций: strstr, strtok,
Функция strstr описана следующим образом:
char* strstr ( const char* str , const char* substr)
№48 слайд
Содержание слайда: Поиск подстрок
Данная функция осуществляет сканирование строки str и находит место первого вхождения подстроки substr в строку str. В случае успешного поиска функция strstr возвращает указатель на первый символ строки str, начиная с которого следует точное совпадение части str обязательно со всей лексемой substr.
Если подстрока substr не найдена в str, возвращается NULL.
№50 слайд
Содержание слайда: Поиск подстрок
char* pS ; // объявление указателя на строку
pS = strstr ( S1 , S2 ) ; // инициализация указателя на строку
cout << pS << '\n' ; // вывод на экран "поиск элемента"
На экран будет выведено "поиск элемента", так как подстрока, содержащаяся в S2, находится внутри строки S1 и функция strstr установит указатель pS на соответствующий элемент символьного массива S1.
№51 слайд
Содержание слайда: Поиск подстрок
Функция strtok имеет синтаксис:
char* strtok ( char* str , const char* delim)
Эта функция выполняет поиск в строке str подстроки, обрамленной с обеих сторон любым символом-разделителем из строки delim. В случае успешного поиска данная функция обрезает строку str, помещая символ '\0' в месте, где заканчивается найденная подстрока.
№52 слайд
Содержание слайда: Поиск подстрок
Предположим, необходимо разбить предложение, имеющееся в строковом массиве, по словам и вывести каждое из них на экран.
char S [81] ; // объявление строки
char* pS ; // объявление указателя на строку
char* Del="U.?!,"; // объявление и инициализация указателя на строку, содержащую набор разделителей
№53 слайд
Содержание слайда: Поиск подстрок
CharToOem ("Назвался груздем, пеняй на сябя!",S) ; // преобразование строки
pS = strtok ( S , Del ) ; // инициализация указателя на строку адресом первого слова
if ( pS ) cout << pS << '\n' ; // если указатель существует, выводит на экран первое слово
while ( pS ) // до тех пор, пока указатель существует
№55 слайд
Содержание слайда: Поиск подстрок
В данной программе объявляется подлежащая анализу строка S, подстрока Del, содержащая набор разделителей (Delimiters), и указатель на символьный тип данных pS. Вызов функции strtok (S , Del) сканирует строку S и как только в ней встретится любой символ, входящий в подстроку Delimiters (в данном случае это символ пробела), указатель pS станет ссылаться на начало исходной строки до найденного символа.
№57 слайд
Содержание слайда: Поиск подстрок
Осуществив проверку указателя pS на существование в операторе if ( pS ), найденное слово выводится на экран. Далее в цикле с помощью функции strtok находится последний нуль-терминатор строки S:
pS = strtok ( NULL , Del ) ;
что, фактически, соответствует локализации следующего слова предложения, и найденная последовательность символов выводится на экран.
№58 слайд
Содержание слайда: Преобразование строки в число
Функции atoi и atol
Синтаксис функций atoi и atol имеет вид:
int atoi ( const char* ptr ) ;
int atol ( const char* ptr ) ;
Эти функции преобразуют ASCIlZ-строку символов, на которую указывает ptr, в число типа int и long соответственно. Работа этих функций в 32-разрядной модели памяти не отличается.
№59 слайд
Содержание слайда: Преобразование строки в число
Если преобразуемое число превышает диапазон значений типа int, функция возвратит непредсказуемое значение. Например:
char S [41] = "400000" ; // объявление и инициализация строки
int n ; // объявление переменной типа int
n = atoi ( S ) ; // инициализация переменной значением преобразованной строки
№60 слайд
Содержание слайда: Преобразование строки в число
cout << "n=" << n << '\n' ; // выводит на экран “400000”
strcat ( S , "0000" ) ; // добавляет в конец строки четыре нуля
long m; // объявление переменной типа long
m = atoll ( S ) ; // инициализация переменной значением преобразованной строки
cout << "m=" << m << '\n' ; // выводит на экран “-294967296”
№61 слайд
Содержание слайда: Преобразование строки в число
Функция atof, определенная как
double atof(const char* ptr)
выполняет преобразование ASCIIZ-строки в число с плавающей точкой типа double. Строка символов должна быть представлена с учетом формата:
[пробелы][знак][цифры][.][цифры][е|Е[знак]цифры],
Где пробелы – последовательность пробелов или табуляторов;
№63 слайд
Содержание слайда: Преобразование строки в число
char S [41] = "12345e66" ; // объявление и инициализация строки
double d ; // объявление переменной типа double
d = atof ( S ) ; // инициализация переменной значением преобразованной строки
cout << "d=" << d << '\n' ; // выводит на экран "d=1.2345e+070"
№64 слайд
Содержание слайда: Преобразование числа в строку
Функции _itoa и _ltoa
Функции обратного преобразования itoa и _ltoa производят конвертирование чисел типа int и long соответственно в строку символов. Они имеёт следующий синтаксис:
char *_ltoa ( long value , char *string , int radix );
char *_itoa ( int value , char *string , int radix ) ;
№65 слайд
Содержание слайда: Преобразование числа в строку
Данные функции принимают в качестве аргумента число value и преобразуют его в строку string с учетом основания системы счисления, представленной в переменной radix. Следующий фрагмент программы преобразует целое число в строку, используя десятеричную систему счисления:
Скачать все slide презентации Массивы символов в С. Прикладное программирование одним архивом:
-
Одномерные массивы в языке программирования Паскаль. Составление программ
-
Работа с массивами и матрицами в языке программирования
-
Основы программирования (Java). Массивы
-
Одномерные массивы целых чисел. Алгоритмизация и программирование
-
Программирование циклических алгоритмов. Операции с памятью. Обработка структур данных (массивов)
-
Символьные строки. Можно ли рассматривать строку как массив?
-
Основы программирования. Язык программирования С. Массивы
-
Программирование на языке Паскаль Часть II. Массивы. Тема 1
-
Основы программирования ФИСТ. Двухмерные массивы. Базовые алгоритмы. Лекция 10
-
Основы программирования ФИСТ. Двухмерные массивы. Практика 3