- •1 Введение в теорию алгоритмизации 6
- •Введение
- •1 Введение в теорию алгоритмизации
- •1.1 Понятие алгоритма
- •1.2 Свойства алгоритмов
- •1.3 Формы представления алгоритма
- •1.4 Основные алгоритмические структуры
- •1.5 Алгоритмический язык
- •2.3 Инструменты программирования Microsoft Visual Studio
- •2.5 Консольные и оконные приложения
- •2.6 Компилирование программы
- •3.2 Простые типы данных
- •3.3 Операции над числовыми данными
- •3.4 Объявление переменных
- •3.7 Директива #define
- •3.9 Библиотека математических функций
- •4 Условный оператор
- •4.1 Условный оператор if
- •4.2 Составной оператор
- •4.3 Вложенный оператор
- •4.4 Оператор выбора switch
- •5 Операторы циклов
- •5.1 Определение цикла
- •5.2 Оператор цикла for
- •5.3 Оператор цикла while
- •5.4 Оператор цикла do while
- •5.5 Табулирование функций
- •5.6 Вычисление конечных сумм и произведений
- •5.7 Управляющие конструкции break, continue, return, goto
- •6 Массивы
- •6.1 Понятие и описание массивов
- •6.2 Одномерные массивы
- •6.3 Двумерные массивы (матрицы)
- •7 Символьные массивы
- •7.1 Описание символьного массива
- •7.2 Стандартные библиотечные функции над строками
- •8 Указатели и операции над указателями
- •8.1 Описание указателей
- •8.2 Операции над указателями
- •8.3 Сравнение указателей
- •8.4 Связь между массивом и указателем
- •9 Функции
- •9.1 Модульное программирование
- •9.2 Объявление функции
- •9.3 Формальные и фактические параметры функции
- •9.4 Локальные и глобальные переменные
- •10 Элементы объектно-ориентированного программирования
- •10.1 Инструментальное программное обеспечение
- •10.2 Технологии программирования
- •10.3 Создание класса
- •11 Полиморфизм
- •12 Этапы разработки программного обеспечения
- •12.1 Идея и цель объектно-ориентированного программирования
- •12.2 Основные понятия объектно-ориентированного программирования
- •12.3 Методы тестирования программных продуктов
- •Список литературы
7.2 Стандартные библиотечные функции над строками
Над строками определены следующие функции (таблица 21).
Таблица 21 – Функции над строками
Функция |
Назначение |
gets() |
Данная функция получает строку от устройства ввода – клавиатуры. Поскольку строка не имеет заранее заданной длины, функция gets() должна знать, когда ей прекратить работу. Функция читает символы до тех пор, пока не встретится ей символ новой строки, который можно создать, нажав клавишу ENTER. Функция берет все символы до символа новой строки, присоединяет к ним нуль-символ и передает строку управляющей программе |
puts() |
Любая строка, выводимая этой функцией, начинается с новой строки. Если функция puts() находит завершающий нуль-символ, она заменяет его символом новой строки и затем выводит строку |
strcat() |
Использует в качестве аргументов две строки. Ее функция заключается в том, чтобы копию второй строки присоединить к концу первой. Это объединений становится новой первой строкой, а вторая строка остается без изменения |
strcmp() |
Использует в качестве аргументов либо две строковые константы, либо два указателя строк в качестве аргументов и возвращает значение 0, если строки одинаковы. Все остальные результаты объяснимы так: функция возвращает разницу между двумя символами в коде ASCII. Она продвигается вдоль строк до тех пор, пока не находят первую пару несовпадающих символов; затем она возвращает разницу в кодах. |
strcopy() |
Данная функция предназначена для копирования строки или адреса строки. |
strlen() |
Данная функция получает длину строки |
strstr() |
Функция сравнения строк |
Пример 7.2 Сравнение строк
Напишем программу, запрашивающую пароль.
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char name[50];
char vvod[10], passw[]="d45gtr";
printf("Введите имя\n");
gets(name);
printf("Введите, %s, пароль\n", name);
gets(vvod);
if (strstr(vvod,passw))
printf ("Пароль принят");
else printf("Пароль не принят");
getch();
return 0;
}
В программе используется функция gets()– функция ввода строки и функция strstr(vvod,passw), которая сравнивает эталонный пароль d45gtr, содержащийся в массиве passw[] с паролем, введенным пользователем.
Задание 7.2
Выполните программу примера 7.2. Внесите в исходный код определение длины введенного пароля. Измените программу так, чтобы неверный ввод пароля мог быть выполнен не более трех раз и заканчивался сообщением "Превышено допустимое число ввода".
Задание 7.3
Проанализируйте коды следующих программ и определите результаты их выполнения.
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char a[25],b[5];
gets(a);
gets(b);
printf("%d\n",strcmp("a","a"));
printf("%d\n",strcmp("a","b"));
printf("%d\n",strcmp("b","a"));
getch();
return 0;
}
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace System;
int main(array<System::String ^> ^args)
{
char a[25],b[5];
gets(a);
gets(b);
strcat(a,b);
printf ("new string a=");
puts(a);
printf("string b=");
puts(b);
getch();
return 0;
}
Вопросы для самоконтроля:
Что такое строка?
Как прочитать строку? Напечатать строку?
Как определить длину строки? Получить ее копию?
Как сравнить две строки? Объединить две строки?
