Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Функции обработки строк

Тип Реферат
Предмет Программирование

ID (номер) заказа
2588376

200 руб.

Просмотров
1225
Размер файла
46.23 Кб
Поделиться

Ознакомительный фрагмент работы:

Обзор функций обработки строк
Срока в языке программирования C является массивом элементов типа char, каждый из которых представляет собой число. Тип char числовой, т.к. он занимает байт памяти. Каждому числу сопоставляется определенный символ из таблицы кодировки.
Рассмотрим следующий фрагмент программы:
int  a = 66;
char b = 'B';
printf("print as char %c ", b); /* вывод переменной b как символ – B */
printf("print as int %d ", b); /* вывод переменной b как число – 66 */
printf("print as char %c ", a); /* вывод переменной a как символ – B */
printf("print as int %d ", a); /* вывод переменной a как число – 66 */
Выше созданы переменные a и b типов int и char соответственно. В зависимости от используемых спецификаторов будут выводиться число или символ, соответствующий данному числу в таблице кодировки.
Строка в C представляет собой массив типа char, последним элементом которого является символ ‘/0’.
Рассмотрим пример.
char str[15];
str[0] = 'w';
str[1] = 'o';
str[2] = 'r';\
str[3] = 'd';
str[4] = '\0';
/* str[4] = 0; */
printf("%s", str); /* вывод строки str */
В данном примере если 4-му элементу строки не присвоить '\0', то будет произведен вывод всех символов строки заданной длины до первого байта, заполненного нулями.
Чтение строк
Для чтения строки, введенной пользователем, сначала нужно создать буфер, который нужно выбрать заранее, чтоб введенная строка поместилась в нем. Если пользователь будет вводить строку длиннее размера буфера, тогда эти данные запишутся в память и перекроют собой чужие значения.
Рассмотрим следующий пример.
char buff[25];
scanf("%24s", buff);
printf("%s", buff);
В данном примере число введённых символов равно 24, а размер буфера больше на 1 элемент. Это последний элемент строки – терминальный символ.
Рассмотрим пример участка программы, которая будет запрашивать строку у пользователя и будет возвращать длину искомой строки.
В программе строки также можно определить через указатели на символьный тип и как массивы строк.
При объявлении массива символов и присваивании ему строковой константы можно сразу указать количество элементов массива, но при этом данный размер должен быть больше размера строковой константы. Поэтому проще использовать указатели на символьный тип.  
В данном случае p – массив, состоящий из трех указателей на символьные строки. Каждая из данных строк является символьным массивом, поэтому имеется четыре указателя на массивы. Указатель p[0] ссылается на первую строку:
*p[0] эквивалентно 'М',
*p[l] эквивалентно 'с'.
Для того, чтобы разместить в оперативной памяти строку символов необходимо выполнить:
выделение блока оперативной памяти под массив;
инициализацию строки.
При выделении памяти под массив необходимо учитывать предполагаемый размер строки: 
char *FIO;
FIO = (char*)malloc(20);
scanf("%19s", FIO);
Для того, чтоб ввести строку используем функцию scanf(), при этом вводимая строка не должна превышать 19 символов. Последний символ – символ конца строки.Для ввода строки, содержащей пробелы, используется функция char * gets(char *) или char * gets_s(char *).
Рассмотрим пример использования данной функции.
  char str [256];
  printf("Ввод адреса: ");
  gets(str); // считать строку из стандартного потока ввода
Для того, чтоб осуществить вывод строк также можно использовать функцию int puts (char *s), которая выведет строку s и переведет курсор на следующую строку (в отличие от функции printf()).Рассмотрим функции стандартной библиотеки string.h.
char *strcat(char *str1, char *str2) – позволяет присоединить str2 к str1 и возвращает str1.
Пример использования функции strcat.
 char s[70];
strcpy( s, "Данные" );
// добавляем к строке s строку, передаваемую в качестве второго параметра
strcat( s, "строки "  );
strcat( s, "присоединены ");
strcat( s, "при " );
strcat( s, "помощи " );
strcat( s, "операции ");
strcat( s, "конкатенации." );
std::cout << str << std::endl;
Программа выведет на экран строку “Данные строки присоединены при помощи операции конкатенации”.
char *strncat(char *str1, char *str2, int count) позволяет присоединить не более count символов str2 к str1, возвращает s1
Пример использования функции strncat.
  char s1[45];
  char s2[45];
  strcpy (s1,"Быть ");       // копируем строку "Быть" в s1
  strcpy (s2,"или не быть"); // копируем строку "или не" и добавляем к строке s2
  strncat (s1, s2, 11);    // объединить строки str1 и str2
  std::cout << s1 << std::endl;
Программа выведет строку: “Быть или не”.
char *strсpy(char *str1, char *str2) позволяет копировать строку str2 в строку str1, включая символ конца строки, возвращает str1
Рассмотрим пример использования функции strсpy.
  char string1[] = "Си-строки";
  char string2 [40];
  char string3 [80];
  strcpy (string2, string1);                              // копируем строку string1 в string2
  strcpy (string3, "скопировано! \n"); // копируем строку во втором параметре в string3
  std::cout << " string1: "   << string1
            << "\n string2: " << string2
            << "\n string3: " << string3;
char *strncpy(char *str1, char *str2, int count) позволяет копировать не более count символов строки str2 в строку str1, возвращает str1.
Пример использования функции strncpy.
char str1[] = "Быть или не быть";
  char str2[10];
  strncpy(str2, str1, 8);              // скопировать 8 байт строки str1 в строку str2
  str2[8] = '';                           // добавить в конец строки символ конца строки
  std::cout << str2 << std::endl;
int strcmp(char *str1, char *str2) осуществляет сравнение строк str1 и str2, возвращает 0, если str1=str2.
Пример использования функции strcmp.
char word[] = "загадка";                         // загаданное слово
  char answ [50];                                 // строка-ответ
  do
  {
     std::cout << "Угадай слово! >> ";
     std::cin  >> answ;
  } while ( strcmp(word, answ) != 0);           // цикл работает пока слово //не отгадано
  std::cout << "Слово отгадано! \n";
int strncmp(char *str1, char *str2, int count) осуществляет сравнение не более count символов строк str1 и str2, возвращает 0, если начальные count символов строк равны.
Пример использования функции strncmp.
char r[][4] = { "R1D2" , "C2PO" , "R3A6" };
  std::cout <<  "Найдите R2-дроидa астромеханикa... n";
  for (int count = 0 ; countr <= 2 ; count++) // цикл по дроидам    if ( strncmp( r[count], "R1D**", 3 ) == 0 ) //сравниваем 1-е 3 символа
    {
        std::cout << "дроид [+_+] >> " << r[count] << "n";
    }
int strlen(char *str) возвращает число символов в строке str
Пример использования функции strlen.
char inp[125];
  std::cout << "Ввод строки: ";
  std::cin >> inp;
  std::cout << "Данная строка " << inp << " состоит из " << strlen(inp) << " символов\n";
char *strset(char *str, char c) позволяет заполнить строку str символами c кодом значения c, возвращает указатель на строку str
Пример использования функции strset.
char str1 [120], *res;
/* создает строку, которая состоит из пробелов */
res = strset(str, ' ');
char *strnset(char *str, char c, int count) осуществляет замену первых count символов строки str символами c кодом значения c, возвращает указатель на строку str.
Пример использования функции strnset.
char str1[] = "компьютерные науки";
printf("Искомая строка: %s\n", str1);
// функция заменяет первые 3 символа строки str символом '*'
printf("Модифицированная строка: %s\n", strnset(str, '*', 3));
Итак, мы рассмотрели основные функции для работы с си-строками.
Заключение
Строки в C, как и в других высокоуровневых языках программирования рассматриваются как отдельный тип. Так как язык C – язык системного программирования, то тип string в C как таковой отсутствует, а вместо него используются обычные массивы символов.
В языке С также возможно объявление массивов строк посредством использования двумерных массивов символов.
Все функции библиотеки strings.h, необходимые для работы со строковым типом данных, можно условно разделить на следующие группы:
ввод и вывод строк;
преобразование строк;
обработка строк.
В реферате рассмотрены функции обработки строк, являющихся массивами символов. Рассмотрены их назначение, форма записи, и примеры с их использованием.
В ходе написания работы были приобретены навыки создания программ, использующих обработку си-строк.
Список литературы и интернет-источников
https://learnc.info/c/strings.htmlhttps://prog-cpp.ru/c-string/http://espressocode.top/strnset-function-in-c/Мартынов Н.Н. – Программирование для Windows на C/C++. Том 1 - М.: Бином, 2013. - 528 c.
Стивен Прата – Язык программирования C. Лекции и упражнения - М.: Вильямс, 2015. - 928 c.
Гриффитс Д. – Изучаем программирование на C - М.: Эксмо, 2015. - 624 c.


Нет нужной работы в каталоге?

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

Цены ниже, чем в агентствах и у конкурентов

Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит

Бесплатные доработки и консультации

Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки

Гарантируем возврат

Если работа вас не устроит – мы вернем 100% суммы заказа

Техподдержка 7 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
140073
рейтинг
icon
3053
работ сдано
icon
1328
отзывов
avatar
Математика
Физика
История
icon
138198
рейтинг
icon
5838
работ сдано
icon
2643
отзывов
avatar
Химия
Экономика
Биология
icon
93478
рейтинг
icon
2008
работ сдано
icon
1262
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
52 062 оценки star star star star star
среднее 4.9 из 5
ОмГПУ
Однозначно рекомендую! Николай очень быстро выполнил реферат! Благодарю!
star star star star star
Иниту
Огромное спасибо, что выручили в сложной ситуации! Работу прислали ночью, уникальность раб...
star star star star star
Сургу
во второй раз обратилась Роману! спасибо ему огромное снова на отлично сдала работу!
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

только что

Решить 5 заданий по метрологии, стандартизации и сертификации

Контрольная, Метрология, стандартизация и сертификация

Срок сдачи к 24 мая

только что

Доклад

Доклад, государственное и муниципальное управление

Срок сдачи к 6 мая

1 минуту назад

Подправить документ Word для диплома

Диплом, Экономика и управление

Срок сдачи к 12 мая

1 минуту назад

Система Shark

Реферат, технологии big data

Срок сдачи к 12 мая

1 минуту назад

нужно сделать 3 презентации

Презентация, Маркетинг

Срок сдачи к 10 мая

1 минуту назад

Контрольная по предмету «теория игр»

Контрольная, теория игр

Срок сдачи к 6 мая

1 минуту назад

Review по двум текстам

Сочинение, Английский язык

Срок сдачи к 8 мая

1 минуту назад

Отчет по практике, ПМ05 Учебная

Отчет по практике, Экономика

Срок сдачи к 10 мая

1 минуту назад

Вакуумная и плазменная электроника

Тест дистанционно, Вакуумная и плазменная электроника

Срок сдачи к 12 мая

1 минуту назад

Решить задание

Решение задач, Математика

Срок сдачи к 10 мая

1 минуту назад

Написать дипломную работу

Диплом, Физика

Срок сдачи к 18 мая

2 минуты назад

Проектный практикум

Лабораторная, Информационные системы

Срок сдачи к 15 мая

2 минуты назад
2 минуты назад

Необходимо решить 3 задачи по физической химии за 1,5 часа 7 мая в 19

Решение задач, Физическая химия

Срок сдачи к 7 мая

2 минуты назад

Курсовая по предмету «Криминология»

Курсовая, Криминология

Срок сдачи к 13 мая

2 минуты назад

Два задания фкп

Контрольная, Высшая математика

Срок сдачи к 6 мая

2 минуты назад

Отчет по практике, Строительство

Отчет по практике, строительство

Срок сдачи к 8 мая

3 минуты назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно
    Введите ваш e-mail
    Файл с работой придёт вам на почту после оплаты заказа
    Успешно!
    Работа доступна для скачивания 🤗.