Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемДмитрий Ямщиков
1 ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем Методические указания к лабораторной работе 1 Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем ПРОГРАММИРОВАНИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ
2 Разбиение строки на поля (strtok) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 2 Первой базовой подпрограммой, на основе которой должно строиться решение задачи, предложенной в лабораторной работе, является разбиение строки на поля, разделенные заданным символом.
3 Разбиение строки на поля (2) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 3 Пример1: Строка: "/home/alex/video/prog/C.avi" Разделитель: '/' Результат: char result[100][256]; result =={"home", "alex", "video", "prog","C.avi"} Задачи: Определить глубину вложенности, количество символов в имени файла, максимальная длина имени директории, преобразование символов имени файла к нужному регистру, определение номера раздела.
4 Разбиение строки на поля (3) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 4 Пример2: Строка: "/home/alex/+/home/ivan/test.cpp+/usr/bin/mc" Разделитель: '+' Результат: {"/home/alex/","/home/ivan/test.cpp","/usr/bin/mc"} Второй уровень сложности
5 Разбиение строки на поля (4) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 5 Пример3: Строки: "csc.sibsutis.ru", " " Разделитель: '.' Результаты: 1. char r[100][256] = {"csc","sibsutis","ru"}, 2. char r[100][256] = {"192","168","1","1"} используя функцию my_atoi можно перевести элементы IP адреса в числовое представление. {"192","168","1","1"} –> int ir[100] = {192,168,1,1} Задачи: проверка имен узлов и IP адресов. int ir[100] = {192,168,1,1} Задачи: проверка имен узлов и IP адресов.">
6 Дополнительное чтение © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 6 Семестр I Лекция "Представление текстовой информации" Определение длины строки (слайд 19) Копирование строки (слайды 20-21) Сравнение строк (слайды 25-26) Поиск символа в строке (слайд 27) Конкатенация строк (слайд 28) Получение подстроки по индексам (слайды 30-32) Поиск подстроки в строке (слайды 36-37) Хранение многострочного текста (слайды 39 – 57) Конкатенация строк набора (слайд 48)
7 Поиск символа в строке (strchr) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 7 Второй базовой подпрограммой, на основе которой должно строиться решение задачи, предложенной в лабораторной работе, является поиск заданного символя в заданной строке
8 Поиск подстроки в строке (2) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 8 Пример1 Строка: char str[] = "D:\video\prog\C.avi" Символ: ":" Результат: 1 Таким образом имя диска находится в 0-м элементе строки, однородный путь (\video\prog\C.avi) расположен начиная со 2-го символа. Для удаления префикса ("D:") и работы только с однородным путем можно использовать следующий прием: D:\video\prog\C.avi\0do/...e D:\video\prog\C.avi\0do/...e str (str+2)
9 Поиск подстроки в строке (3) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 9 Пример2 Строка: str[] = Символы: ":" Результаты: 4, str (str+5) vi alex\ ~/do/...e vi (str+17) : (str+5)[0] == '1' (str+5)[1] == '9' (str+5)[2] == '2' (str+17)[0] == '~'
10 Поиск подстроки в строке (strstr) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 10 Третьей базовой подпрограммой, на основе которой должно строиться решение задачи, предложенной в лабораторной работе, является поиск заданной подстроки в заданной строке
11 Поиск подстроки в строке (2) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 11 Пример1: Строка: " Подстрока: "://" Результат: 4 Таким образом название протокола находится в элементах строки 0 – 3. Далее возможно использование функции сравнения строк: http\0// /vido/...e : scrcmp(str,"http") == 0 strcmp(str,"ftp") > 0 0">
12 Изменение строки © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 12 При замене одного фрагмента (подстроки) в строке на новый необходимо учитывать следующие факторы: Если длина нового фрагмента больше длины исходного необходим сдвиг элементов вправо Иначе – необходим сдвиг влево
13 Изменение строки (2) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 13 /somedir\ /home/alex... /home/alex\ ~/somedir\ /somedir
14 Изменение строки (3) © Кафедра вычислительных систем ФГОБУ ВПО «СибГУТИ» 14 //host.ru /video\ ftp: //host.ru /video\ \\host.ru \video\
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.