Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК-1_АЯП_рус.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.19 Mб
Скачать

Void main()

{printf("Работа с функциями библиотеки обработки символов \n");

printf ("%s%s\n",isdigit(8)?"8 есть ":"8 не ","цифра");

printf ("%s%s\n\n",isdigit('#')?"# есть ":"# не "," цифра ");

printf ("%s%s\n",isalpha('A')?"A есть ":"A не ","буква");

printf ("%s%s\n",isalpha('a')?"a есть ":"a не "," буква ");

printf ("%s%s\n",isalpha('&')?"& есть ":"& не "," буква ");

printf ("%s%s\n",isalnum('A')?"A есть ":"A не "," буква или цифра");

printf ("%s%s\n",isalnum('8')?"8 есть ":"8 не "," буква или цифра ");

printf ("%s%s\n",isalnum('#')?"# есть ":"# не "," буква или цифра ");

getch();

}

на экране будет

Работа с функциями библиотеки обработки символов

8 Есть цифра

# не цифра

A есть буква

a есть буква

& не буква

A есть буква или цифра

8 Есть буква или цифра

# не буква или цифра

Массивы символов. Строки

Массивы типа char - символьные массивы - занимают в языке особое место. Во многих языках есть специальный тип данных - строка символов (string). В языке С отдельного типа строки символов нет, а работа со строками реализована путем использования одномерных массивов типа char. В языке С символьная строка - это одномерный массив типа char, заканчивающийся нулевым байтом. Нулевой байт - это байт, каждый бит которого равен нулю. Для нулевого байта определена специальная символьная константа '\0'. Это следует учитывать при описании соответствующего массива символов. Так, если строка должна содержать N символов, то в описании массива следует указать N+1 элемент.

Например, описание

char str[11];

предполагает, что строка содержит 10 символов, а последний байт зарезервирован под нулевой байт. Конечно, мы задали обычный одномерный массив, но если мы хотим трактовать его как строку символов, то это будет строка максимум из 10 элементов.

Хотя в языке С нет специального типа строки, язык допускает строковые константы. Строковая константа - это список литер, заключенных в двойные кавычки. Например,

"Borland C++", "Это строковая константа".

В конец строковой константы не надо ставить символ '\0'. Это сделает компилятор, и строка "Borland C++" в памяти будет выглядеть так:

B

O

R

l

A

N

D

C

+

+

\0

Есть два простых способа ввести строку с клавиатуры. Первый способ - воспользоваться функцией scanf( ) со спецификатором ввода %s. Надо помнить, что функция scanf ( ) вводит символы до первого пробельного символа. Второй способ - воспользоваться специальной библиотечной функцией gets ( ), объявленной в файле stdio.h. Функция gets( ) позволяет вводить строки, содержащие пробелы. Ввод оканчивается нажатием клавиши Enter. Обе функции автоматически ставят в конец строки нулевой байт. В качестве параметра в этих функциях используется просто имя массива.

Вывод строк производится функциями printf( ) или puts( ). Обе функции выводят содержание массива до первого нулевого байта. Функция puts( ) добавляет в конце выводимой строки символ новой строки. В функции printf( ) переход на новую строку надо предусматривать в строке формата самим.

Рассмотрим пример.

char str[80]; // Зарезервировали место для строки

printf ("Введите строку длиной менее 80 символов: ");

gets(str); /* читает строку с клавиатуры,

пока не нажмете клавишу Enter */

// вывод строки на экран

printf ("Вы ввели строку "):

puts(str);

printf(''Введите еще одну строку длиной менее 80 символов: ");

scanf("%s", str); /* читает строку с клавиатуры,

пока не встретится пробел */

printf (''Bы ввели строку %s\n", str):

}

Массив символов (типа char) можно инициализировать как списком из отдельных символьных констант, так и строкой символов. При этом в случае инициализации строкой символов массив получит в конце и нулевой символ, ограничивающий строку. Примеры описания строк

char animal[4];

char animal[4] = {‘c’,’a’,’t’,’\0’};

char animal[] = “cat”;

Функции преобразования символьных строк: atoi(), atof().

При вводе информации иногда целесообразнее ввести строку символов, а затем преобразовать в соответствующее число.Для этого используются функции atoi() и atof(). Первая преобразует строку в целое, вторая - в число с плавающей точкой. Пример:

#include <stdlib.h>

#include <stdio.h>

main()

{

char ch[10];