Студопедия — Лабораторная работа № 12. Обработка символьной информации
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Лабораторная работа № 12. Обработка символьной информации






Для представления символьной информации можно использовать символы, символьные переменные и символьные константы.

Задание Краткие теоретические сведения
1. Изучить способы преобразования символов, выполнив программу в правой части. Внести изменения в программу с тем, чтобы продемонстрировать, как прописная буква выводится в виде строчной. Заменить в программе четвертую и пятую строки на: char *pc; pc = & c; *pc = n + '0'; printf(" %c\n", *pc); Объяснить результат.
2. Выполнить прокрутку программы, записанной в правой части и записать ее условие. Опробовать программу с различным текстом. Строка символов хранится в памяти как массив. Количество элементов в таком массиве на один элемент больше, чем указано в программе, т.к. в конец строки всегда добавляется '\0'. В данной программе указатель может содержать нулевое значение, поэтому перед операцией разыменования его следует проверять.  
3. Выполнить программу, приведенную в правой части. Объяснить принцип использования функции из стандартной библиотеки. Пусть имеется адрес файла в сети, например: http: \\belstu.by\p1\p2\file1.htm Определить имя последней папки (каталога).  
# include < stdio.h> # include < string.h> void main() { char st[50]; int i, k, n, j; printf(" vvedite stroku: "); scanf(" %s", st); for (i = strlen(st); i > = 0; i--) { if (st[i] == '\\') break; } k = i; for (j = (k - 1); j > = 0; j--) { if(st[j] == '\\') break; } n = j; if (k == n) printf(" '\\' "); else { char s[20]; strncpy(s, & st[n + 1], k – n - 1); s[k - n - 1] = 0; printf(" posledniy katalog: %s\n", s); } }  
Функция Краткое описание функции
strcmp int strcmp(const char *str1, const char *str2); Сравнивает строки str1 и str2. Если str1 < str2, то результат < 0, если str1 = str2, то результат = 0, если str1 > str2, то результат> 0.
strcpy char* strcpy(char*s1, const char *s2); Копирует байты из строки s1 в строку s2
strdup char *strdup (const char *str); Выделяет память и переносит в нее копию строки str.
strlen int strlen (const char *str); Вычисляет длину строки str
strncat char *strncat(char *s1, const char *s2, int kol); Приписывает kol символов строки s1 к строке s2
strncpy char *strncpy(char *s1, const char *s2, int kol); Копирует kol символов строки s2 в строку s1
strnset char *strnset(char *str, int c, int kol); Заменяет первые kol символов строки s1 символом с
atoi int atoi(char *str); Преобразует строку в целое
atof float atof(char *str); Преобразует строку в число с плавающей точкой

 

 

 

4. В правой части записаны два варианта решения задачи. Выполнить программы и объяснить различия между ними.   Пример проверки правильности расстановки круглых скобок в строке.  
#include < stdio.h> void main() { char s[256]; int i, c; printf(" Enter string: "); gets(s); for(c=i=0; s[i]! = 0; i++) { if(s[i]=='(') c++; if(s[i]==')') c--; } if(! c) printf(" Ok\n"); else printf(" Not Ok\n"); } #include < stdio.h> void main() { char s[256]; int i, c; char *ps; printf(" Enter string: "); gets(s); for(c=0, ps = s; *ps! = 0; ps++) { if(*ps == '(') c++; if(*ps == ')') c--; } if(c==0) printf(" Ok\n"); else printf(" Not Ok\n"); }

 

 

5. Выполнить задание из таблицы ниже двумя способами: используя индексы и используя указатели. При написании программне использовать стандартные операции и функции для строк символов.

 

№ варианта Условие задачи
  Написать программу, реализующую вставку в строку n символов, начиная с позиции k.
  Написать программу, реализующую выделение подстроки S 1 длиной k с позиции номер n из строки.
  В строке есть два символа *. Получить все символы между первым и вторым символом *.
  Написать программу, которая удаляет в строке все буквы bв тексте, написанном латинскими буквами.
  Исключить из строки группы символов, расположенные между скобками вместе со скобками. Предполагается, что нет вложенных скобок.
  В строке есть символы *. Преобразовать строку следующим образом: удалить все символы *, и повторить каждый символ, отличный от *.
  Преобразовать строку: после каждой буквы a добавить символ!
  Написать программу, которая осуществляет сравнение двух строк и выводит сообщение о том, какие символы совпадают.
  Написать программу, реализующую функцию вставки подстроки S1 длиной k в строку S с позиции номер n.
  Написать программу, которая записывает строку в обратном порядке.
  Вывести текст, составленный из последних букв всех слов.
  Зашифровать введенную с клавиатуры строку, поменяв местами первый символ со вторым, третий с четвертым и т. д.
  Отредактировать заданное предложение, удаляя из него все слова с чётными номерами.
  Найти самое длинное и самое короткое слово в заданном предложении.
  Из предложения удалить все символы, совпадающие с символом, введенным с клавиатуры.
  Из текста удалить те его части, которые заключены в кавычки (вместе с кавычками).

 

 

 

В начало практикума







Дата добавления: 2014-11-10; просмотров: 2045. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Именные части речи, их общие и отличительные признаки Именные части речи в русском языке — это имя существительное, имя прилагательное, имя числительное, местоимение...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия