Видео уроки по языку C++ / Работа со строками.Стандартная библиотека. / #14

 

В этом 14 видео уроке мы разберем [page=163]домашнее задание[/page] которые было дано в прошлом уроке. После этого мы приступим к изучению темы Строки в Си.

И так начнем, что же такое строки в языке Си? На самом деле все довольно просто, строки в си представляют из себя ничто иное как одномерный массив символов но этот массив содержит символ \’\\n\’ называемый нулевым символом или Си конец строки, а когда он используется как маркер конца строки то называют — нуль терминатором. С помощью таких маркеров можно считывать массив символов и знать когда остановить ведь если мы достигнем нулевого символа то это будет означать что мы дошли до конца строки. Строка хранящаяся в таком формате называется строкой С.

Например массив символом состоящий из десяти элементов может хранить в себе 9 символов и 10 символ означающий конец строки, нулевой символ компилятор добавляет сам, поэтому не забывайте объявлять массив на 1 значение больше чем вам необходимо. Также вместо записи

char name[6] = "Pavel";

вы можете использовать такую запись:

char name[] = "Pavel";

запись name[] означает что компилятор сам посчитает сколько нужно будет выделить памяти для хранения данной строки и для нуль символа. Возможно также объявлять константный указатель на строку

char* name = "Pavel";

данная запись означает что мы объявляем константный указатель на начало строки, необходимо запомнить что константный указатель нельзя изменять. Например такая запись как с массивами не допустима

name[0]= "F";

потому что мы не можешь заносить новые значения по этому адресу, но это не запрещает нам получить значение находящееся по этому адресу

cout<<name[0];

таким образом результат будет вывод символа \’P\’.

Для работы с символами существует стандартная библиотека Си подключаемая следующим образом, либо заголовочным файлом

#include <cctype>

либо

#include <ctype.h>

. Функции в этих библиотеках разделены на два вида, классификации и преобразования.

Функции классификации:

  • isalnum — Проверяет, является ли символ буквой или цифрой
  • isalpha — Проверяет, является ли символ буквой
  • iscntrl — Проверяет, является ли символ управляющим
  • isdigit — Проверяет, является ли символ цифрой
  • isgraph — Проверяет, является ли символ символ видимым
  • islower — Проверяет, является ли символ буквой нижнего регистра
  • isprint — Проверяет, является ли символ печатным
  • ispunct — Проверяет, является ли символ знаком пунктуации
  • isspace — Проверяет, является ли символ разграничительным
  • isupper — Проверяет, является ли символ буквой верхнего регистра
  • isxdigit — Проверяет, является ли символ цифра шестнадцатеричной системы исчисления

Функции преобразования:

  • tolower — Возвращает символ в нижнем регистре
  • toupper — Возвращает символ в верхнем регистре

Прототипы этих функций имеют вид:

int имя_функции( int );

Функции возвращают значение целого типа либо 1 либо 0, распознаются эти значения как истина и ложь. То есть если функция проверила символ на принадлежность к какому то множеству и она входит в него то она вернет значение истины(1) иначе вернет ложь(0).
Пример функции isalnum:

#include <iostream> // для оператора cout#include <cctype> // для функции isalnum#include <locale>void main() {  setlocale(LC_ALL,"Rus");  int counter = 0; // счетчик букв и цифр  char str[] = "Ar2D2|\\-/|"; // строка с текстом   while ( isalnum(\'j\') ) // пока текущий символ в строке буква или цифра      counter++; // инкрементируем счётчик букв и цифр  std::cout << "Первые " << counter << " символов - или буквы или цифры.\\n";  system("pause");}
На этом урок окончен, если что то не поняли советуем вам посмотреть видео урок находящийся в начале статьи.
 Обсуждение и вопросы задавайте на форуме: Forum.ManySource.ru 

Автор: Павел Кадыров

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *