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

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

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




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


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


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

Пункты решения командира взвода на организацию боя. уяснение полученной задачи; оценка обстановки; принятие решения; проведение рекогносцировки; отдача боевого приказа; организация взаимодействия...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

Объект, субъект, предмет, цели и задачи управления персоналом Социальная система организации делится на две основные подсистемы: управляющую и управляемую...

Законы Генри, Дальтона, Сеченова. Применение этих законов при лечении кессонной болезни, лечении в барокамере и исследовании электролитного состава крови Закон Генри: Количество газа, растворенного при данной температуре в определенном объеме жидкости, при равновесии прямо пропорциональны давлению газа...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

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