Студопедия Главная Случайная страница Обратная связь

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

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




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


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Прием и регистрация больных Пути госпитализации больных в стационар могут быть различны. В цен­тральное приемное отделение больные могут быть доставлены: 1) машиной скорой медицинской помощи в случае возникновения остро­го или обострения хронического заболевания...

ПУНКЦИЯ И КАТЕТЕРИЗАЦИЯ ПОДКЛЮЧИЧНОЙ ВЕНЫ   Пункцию и катетеризацию подключичной вены обычно производит хирург или анестезиолог, иногда — специально обученный терапевт...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

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

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

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

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