Презентация «Строки. Формат строки в языке С»

Смотреть слайды в полном размере
Презентация «Строки. Формат строки в языке С»

Вы можете ознакомиться с презентацией онлайн, просмотреть текст и слайды к ней, а также, в случае, если она вам подходит - скачать файл для редактирования или печати. Документ содержит 48 слайдов и доступен в формате ppt. Размер файла: 640.00 KB

Просмотреть и скачать

Pic.1
Лекция 5 Строки Формат строки в языке С Принципы работы со строками Функции для работы со строками
Лекция 5 Строки Формат строки в языке С Принципы работы со строками Функции для работы со строками
Pic.2
Строка Строка – это последовательность ASCII или UNICODE символов. Строки в большинстве языков прогр
Строка Строка – это последовательность ASCII или UNICODE символов. Строки в большинстве языков программирования высокого уровня рассматриваются как отдельный тип, входящий в систему базовых типов …
Pic.3
Форматы хранения строк Исторически сложилось два представления формата строк: формат ANSI; строки с
Форматы хранения строк Исторически сложилось два представления формата строк: формат ANSI; строки с завершающим нулем (используется в языке С). Формат ANSI устанавливает, что значением первой позиции …
Pic.4
Форматы хранения строк В строках с завершающим нулем, значащие символы строки указываются с первой п
Форматы хранения строк В строках с завершающим нулем, значащие символы строки указываются с первой позиции, а признаком завершения строки является значение ноль. Представление рассмотренной ранее …
Pic.5
Объявление строк Строки в языке С реализуются посредством массивов символов. Поэтому объявление ASCI
Объявление строк Строки в языке С реализуются посредством массивов символов. Поэтому объявление ASCII строки на языке С имеет следующий синтаксис: char имя[длина]; Объявление строки имеет тот же …
Pic.6
Объявление строк Инициализация строки осуществляется при ее объявлении, используя следующий синтакси
Объявление строк Инициализация строки осуществляется при ее объявлении, используя следующий синтаксис: char str[длина] = строковый литерал; Строковый литерал – строка ASCII символов заключенных в …
Pic.7
Объявление строк Объявление константных строковых переменных начинается с ключевого слова const, за
Объявление строк Объявление константных строковых переменных начинается с ключевого слова const, за которым следует объявление строки с инициализацией. Пример: const char message[] = “Сообщение об …
Pic.8
Работа со строками Так как строки на языке С являются массивами символов, то к любому символу строки
Работа со строками Так как строки на языке С являются массивами символов, то к любому символу строки можно обратиться по его индексу. Для этого используется синтаксис обращения к элементу массива, …
Pic.9
Массивы строк Объявление массивов строк в языке С также возможно. Для этого используются двумерные м
Массивы строк Объявление массивов строк в языке С также возможно. Для этого используются двумерные массивы символов, что имеет следующий синтаксис: char имя[количество][длина]; Первым размером …
Pic.10
Массивы строк При объявлении массивов строк можно производить инициализацию: char имя[количество][дл
Массивы строк При объявлении массивов строк можно производить инициализацию: char имя[количество][длина] = {строковый литерал №1, . . . строковый литерал №N}; Число строковых литералов должно быть …
Pic.11
Массивы строк Например: char month[12][10] = { ”Январь”, ”Февраль”, ”Март”, ”Апрель”, ”Май”, ”Июнь”,
Массивы строк Например: char month[12][10] = { ”Январь”, ”Февраль”, ”Март”, ”Апрель”, ”Май”, ”Июнь”, ”Июль”, ”Август”, ”Сентябрь”,”Октябрь”, ”Ноябрь”, ”Декабрь” };
Pic.12
Массивы строк При объявлении массивов строк с инициализацией допускается не указывать количество стр
Массивы строк При объявлении массивов строк с инициализацией допускается не указывать количество строк в квадратных скобках. В таком случае, количество строк в массиве будет определено автоматически …
Pic.13
Функции для работы со строками Все библиотечные функции, предназначенные для работы со строками, мож
Функции для работы со строками Все библиотечные функции, предназначенные для работы со строками, можно разделить на три группы: ввод и вывод строк; преобразование строк; обработка строк.
Pic.14
Ввод и вывод строк Для ввода и вывода строковой информации можно использовать функции форматированно
Ввод и вывод строк Для ввода и вывода строковой информации можно использовать функции форматированного ввода и вывода (printf и scanf). Для этого в строке формата при вводе или выводе строковой …
Pic.15
Ввод и вывод строк Недостатком функции scanf при вводе строковых данных является то, что символами р
Ввод и вывод строк Недостатком функции scanf при вводе строковых данных является то, что символами разделителями данной функции являются: перевод строки, табуляция; пробел. Поэтому, используя данную …
Pic.16
Ввод и вывод строк Для ввода и вывода строк в библиотеке stdio. h содержатся специализированные функ
Ввод и вывод строк Для ввода и вывода строк в библиотеке stdio. h содержатся специализированные функции gets и puts. Функция gets предназначена для ввода строк и имеет следующий заголовок: char * …
Pic.17
Ввод и вывод строк Простейшая программа: ввод и вывод строки с использованием функций gets и puts бу
Ввод и вывод строк Простейшая программа: ввод и вывод строки с использованием функций gets и puts будет иметь вид: char str[100] = “”; printf(“Введите строку: ”); gets(str); printf(“Вы ввели: ”); …
Pic.18
Ввод и вывод строк Помимо функций ввода и вывода в потоки в библиотеке stdio. h присутствуют функции
Ввод и вывод строк Помимо функций ввода и вывода в потоки в библиотеке stdio. h присутствуют функции форматированного ввода и вывода в строки. Функция форматированного ввода из строки имеет следующий …
Pic.19
Ввод и вывод строк Функции форматированного вывода в строку имеют следующие заголовки: int sprintf(c
Ввод и вывод строк Функции форматированного вывода в строку имеют следующие заголовки: int sprintf(char * restrict buffer, const char * restrict format, [argument] . . . ); int snprintf(char * …
Pic.20
Ввод и вывод строк В следующем фрагменте программы осуществляется ввод целых чисел и вычисление их с
Ввод и вывод строк В следующем фрагменте программы осуществляется ввод целых чисел и вычисление их суммы (ввод значений продолжается пока не будет введена пустая строка): int summa = 0; while(1){ …
Pic.21
Преобразование строк Для преобразования строк, содержащих числа, в численные значения в библиотеке s
Преобразование строк Для преобразования строк, содержащих числа, в численные значения в библиотеке stdlib. h предусмотрен следующий набор функций: double atof(const char *string); int atoi(const char …
Pic.22
Преобразование строк Корректное представление вещественного числа в текстовой строке должно удовлетв
Преобразование строк Корректное представление вещественного числа в текстовой строке должно удовлетворять формату: [ ][{+|-}][цифры][. цифры][{e|E}[{+|-}]цифры] После символов E, e указывается …
Pic.23
Преобразование строк Помимо приведенных выше функций в библиотеке stdlib. h доступны также следующие
Преобразование строк Помимо приведенных выше функций в библиотеке stdlib. h доступны также следующие функции преобразования строк в вещественные числа: float strtof(const char * restrict string, char …
Pic.24
Преобразование строк Аналогичные функции присутствуют и для преобразования строк в целочисленные зна
Преобразование строк Аналогичные функции присутствуют и для преобразования строк в целочисленные значения: long int strtol(const char * restrict string, char ** restrict endptr, int base); unsigned …
Pic.25
Преобразование строк Функции обратного преобразования (численные значения в строки) в библиотеке std
Преобразование строк Функции обратного преобразования (численные значения в строки) в библиотеке stdlib. h присутствуют, но они не регламентированы стандартом, и рассматриваться не будут. Для …
Pic.26
Обработка строк В библиотеке string. h содержатся функции для различных действий над строками. Функц
Обработка строк В библиотеке string. h содержатся функции для различных действий над строками. Функция вычисления длины строки: size_t strlen(const char *string); Пример: char str[] = “1234”; int n = …
Pic.27
Обработка строк Функции копирования строк: char * strcpy(char * restrict dst, const char * restrict
Обработка строк Функции копирования строк: char * strcpy(char * restrict dst, const char * restrict src); char * strncpy(char * restrict dst, const char * restrict src, size_t num); Пример: char …
Pic.28
Обработка строк Функции сравнения строк: int strcmp(const char *string1, const char *string2); int s
Обработка строк Функции сравнения строк: int strcmp(const char *string1, const char *string2); int strncmp(const char *string1, const char *string2, size_t num); Функции осуществляют сравнение строк …
Pic.29
Обработка строк Функции объединения (конкатенации) строк: char * strcat(char * restrict dst, const c
Обработка строк Функции объединения (конкатенации) строк: char * strcat(char * restrict dst, const char * restrict src); char * strncat(char * restrict dst, const char * restrict src, size_t num); …
Pic.30
Обработка строк Функции поиска символа в строке: char * strchr(const char *string, int c); char * st
Обработка строк Функции поиска символа в строке: char * strchr(const char *string, int c); char * strrchr(const char *string, int c); Пример: char str[] = “Строка для поиска”; char *str1 = …
Pic.31
Обработка строк Функция поиска строки в строке: char * strstr(const char *str, const char *substr);
Обработка строк Функция поиска строки в строке: char * strstr(const char *str, const char *substr); Пример: char str[] = “Строка для поиска”; char *str1 = strstr(str,“для”); //str1 == “для поиска”
Pic.32
Обработка строк Функция поиска первого символа в строке из заданного набора символов: size_t strcspn
Обработка строк Функция поиска первого символа в строке из заданного набора символов: size_t strcspn(const char *str, const char *charset); Пример: char str[] = “Компьютер”; char ch = …
Pic.33
Обработка строк Функции поиска первого символа в строке не принадлежащему заданному набору символов:
Обработка строк Функции поиска первого символа в строке не принадлежащему заданному набору символов: size_t strspn(const char *str, const char *charset); Пример: char str[] = “Компьютер”; char ch = …
Pic.34
Обработка строк Функции поиска первого символа в строке из заданного набора символов: char * strpbrk
Обработка строк Функции поиска первого символа в строке из заданного набора символов: char * strpbrk(const char *str, const char *charset); Пример: char str[] = “Компьютер”; char *ptr = …
Pic.35
Обработка строк Функция поиска следующего литерала в строке: char * strtok(char * restrict string, c
Обработка строк Функция поиска следующего литерала в строке: char * strtok(char * restrict string, const char * restrict charset); Например, необходимо подсчитать количество слов в строке. Слова …
Pic.36
Пример 1 Дана строка (максимум 15 символов), содержащая целое незнаковое число в троичной системе ис
Пример 1 Дана строка (максимум 15 символов), содержащая целое незнаковое число в троичной системе исчисления. Перевести число в семеричную систему исчисления. Полученный результат вывести на экран.
Pic.37
Пример 1 #include <stdio. h> int main(int argc, char *argv[]) { char str[16]; printf("Вве
Пример 1 #include <stdio. h> int main(int argc, char *argv[]) { char str[16]; printf("Введите число: "); gets(str); unsigned num = 0, i; for(i=0;str[i]!=0;i++){ num += str[i] - 48; …
Pic.38
Пример 1 for(i=0;num>0;i++){ str[i] = num%7 + 48; num /= 7; } str[i] = 0; for(int j=0;j<i/2;j+
Пример 1 for(i=0;num>0;i++){ str[i] = num%7 + 48; num /= 7; } str[i] = 0; for(int j=0;j<i/2;j++){ char ch = str[j]; str[j] = str[i-j-1]; str[i-j-1] = ch; } printf(“Результат: ”); puts(str); …
Pic.39
Пример 2 Дана строка (максимально 100 символов), содержащая слова, разделенные одним или несколькими
Пример 2 Дана строка (максимально 100 символов), содержащая слова, разделенные одним или несколькими пробелами, или знаками табуляции. Заменить все знаки табуляции знаком пробела, удалить двойные …
Pic.40
Пример 2 #include <stdio. h> int main(int argc, char *argv[]) { char str[101]; printf("Вв
Пример 2 #include <stdio. h> int main(int argc, char *argv[]) { char str[101]; printf("Введите строку: "); gets(str); for(int i=0;str[i]!=0;i++) if(str[i] == '\t') str[i] = …
Pic.41
Пример 3 Дана строка (максимально 100 символов), содержащая слова, разделенные одним или несколькими
Пример 3 Дана строка (максимально 100 символов), содержащая слова, разделенные одним или несколькими пробелами, или знаками табуляции. Заменить все знаки табуляции знаком пробела, удалить двойные …
Pic.42
Пример 3 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { cha
Пример 3 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { char str[101]; printf("Введите строку: "); gets(str); do{ int ind = …
Pic.43
Пример 4 Дана строка (максимальная длина 100 символов), содержащая слова, разделенные пробелами или
Пример 4 Дана строка (максимальная длина 100 символов), содержащая слова, разделенные пробелами или знаками табуляции. Число слов в строке не превышает 20, а длина каждого слова не более 10 символов. …
Pic.44
Пример 4 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { cha
Пример 4 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { char str[101]; printf("Введите строку: "); gets(str); char array[20][11]; int count = 0; …
Pic.45
Пример 4 int flag = 1; while(flag){ flag = 0; for(int i = 0;i<count-1;i++) if(strcmp(array[i],arr
Пример 4 int flag = 1; while(flag){ flag = 0; for(int i = 0;i<count-1;i++) if(strcmp(array[i],array[i+1])>0){ char buffer[11]; strcpy(buffer,array[i]); strcpy(array[i],array[i+1]); …
Pic.46
Пример 5 Дан массив строк (максимально 25 строк, каждая строка не более 80 символов). Строки вводятс
Пример 5 Дан массив строк (максимально 25 строк, каждая строка не более 80 символов). Строки вводятся пользователем, признак завершения ввода – ввод пустой строки. Упорядочить строки по длине или по …
Pic.47
Пример 5 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { cha
Пример 5 #include <stdio. h> #include <string. h> int main(int argc, char *argv[]) { char strs[25][81]; unsigned count = 0; printf("Вводите строки:\n"); for(int …
Pic.48
Пример 5 int flag = 1; while(flag){ flag = 0; for(int i = 0;i<count-1;i++) if((type&&(str
Пример 5 int flag = 1; while(flag){ flag = 0; for(int i = 0;i<count-1;i++) if((type&&(strlen(strs[i]) > strlen(strs[i+1])))|| (!type&&(strcmp(strs[i],strs[i+1])>0))){ char …


Скачать презентацию

Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!