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

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

Лабораторная работа № 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 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

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

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

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