Студопедия — Лабораторная работа № 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; просмотров: 2047. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Плейотропное действие генов. Примеры. Плейотропное действие генов - это зависимость нескольких признаков от одного гена, то есть множественное действие одного гена...

Методика обучения письму и письменной речи на иностранном языке в средней школе. Различают письмо и письменную речь. Письмо – объект овладения графической и орфографической системами иностранного языка для фиксации языкового и речевого материала...

Классификация холодных блюд и закусок. Урок №2 Тема: Холодные блюда и закуски. Значение холодных блюд и закусок. Классификация холодных блюд и закусок. Кулинарная обработка продуктов...

Эффективность управления. Общие понятия о сущности и критериях эффективности. Эффективность управления – это экономическая категория, отражающая вклад управленческой деятельности в конечный результат работы организации...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

Классификация ИС по признаку структурированности задач Так как основное назначение ИС – автоматизировать информационные процессы для решения определенных задач, то одна из основных классификаций – это классификация ИС по степени структурированности задач...

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