Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ СИ. Лабораторный практикум доцента кафедры «Системы управления и компьютерные технологии» Пановой Т.В..doc
Скачиваний:
106
Добавлен:
26.03.2015
Размер:
585.22 Кб
Скачать

Лабораторная работа №2

Тема

Работа со строками

Цель: получение практических навыков решения задач обработки строк.

I. Теоретические сведения.

См. лекции по курсу «Программирование на языке высокого уровня».

1. Некоторые стандартные функции обработки строк и их использование

Функции обработки строк объявлены в include-файлах <string.h> и <ctype.h>.

Процедура

Использование

strcat

добавление строки

strchr

определение первого вхождения данного символа в строке

strcmp

сравнение двух строк

strcpy

копирование одной строки в другую

strlen

определение длины строки

strlwr

преобразование строки в символы нижнего регистра (в строчные буквы)

strncmp

сравнение n символов в двух строках

strncpy

копирование n символов из одной строки в другую

strnset

заполнение n символов строки заданным символом

strpbrk

определение первого вхождения символа из одной строки в другой строке

strrchr

определение последнего вхождения данного символа в строке

strrev

переворот строки (reverses)

strspn

нахождение в строке первой подстроки из данной последовательности символов

strstr

определение первого вхождения данной строки в другой строке

strupr

преобразование строки в символы верхнего регистра (в прописные буквы)

II. Контрольные вопросы.

  1. Дать понятие символьному литералу и символьной переменной. Привести примеры.

  2. Что такое строковый литерал? Привести пример.

  3. Что представляет собой строка?

  4. Как создать строку? Привести примеры.

  5. Привести пример обычного присваивания значения строке.

  6. Как осуществить присваивания указателей строковым литералам?

  7. Как ввести строку?

III. Практическая часть.

1. Выполнение общего задания.

Разобрать задачи.

Задача 1

1. Постановка задачи: перевести буквы (латиница) изначально заданного слова в верхний регистр, вывести слово.

2. Блок-схема алгоритма:

3. Текст программы:

#include <conio.h> #include <stdio.h> int main() {

char str[]="word"; // заданное слово

int i; // счетчик символов в слове

printf(“\n%s\n”,str); // вывод заданного слова строкой

for (i=0;str[i]!='\0';i++) // пока не будет достигнут нуль-терминатор

str[i]-=32; /* от кода каждого i-ого символа вычитать 32 для получения кода этого символа в верхнем регистре */

for (i=0;str[i]!='\0';i++)

printf ("%c",str[i]); // вывод полученного слова посимвольно

getch();

return 0;

}

4. Тестирование:

Теоретически рассчитанное выходное значение

Практически полученное выходное значение

Тест: входная строка:”word”

WORD

WORD

Задача 2

1. Постановка задачи: ввести предложение, заканчивающееся точкой, и вывести последнее слово, если предложение правильное, т.е. между словами один пробел, иначе вывести сообщение о неправильном предложении.

2. Математическая модель и описательный алгоритм.

Максимальная длина строки n=80; начальное значение переменной s=’ ’ (пробел); счетчики: символов в строке i=0, символов в слове k=0, пробелов p=0.

  • Используя в цикле с предусловием i<n-1 и s≠’.’ функцию getchar(), можно считывать символ в переменную s, предварительно запомнив предыдущий символ в переменной ss; если в s – пробел или точка (конец слова или конец предложения), то:

  • если предыдущий символ (ss) – пробел, то счетчик пробелов p=p+1,

  • если введенный символ (s) – не точка, то счетчик символов в слове k=0;

иначе (если в s ни пробел и ни точка) формировать строку как массив символов a[k]=s, k=k+1 и i=i+1;

  • после завершения цикла, если p>0 или in-1, то вывести сообщение о неправильности предложения; иначе вывести последнее слово.

Соседние файлы в предмете Программирование