Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Строки, как одномерные массивы символов



Работа со строками в языке С/C++ реализована путем использования одномерных мас­сивов типа char, т.е. строка символов – это одномерный массив типа char, заканчиваю­щийся нулевым байтом. Нулевой байт – это байт, каждый бит которого равен нулю, при этом для нулевого байта определена символьная константа ´ \0 ´(признак окончания строки или нуль-терминатор). Поэтому, если строка должна состоять из k символов, то в описании массива необходимо указать размер k+1.

Например, описание: char a[7], означает, что строка содержит шесть символов, а последний байт отведен под нуль-терминатор.

Строковая константа в языке С/C++ – это набор символов, заключенных в двойные кавычки. Например: “Лабораторная работа по строкам”. В конце строковой константы явно указывать символ ´ \0 ´ не нужно, так как это сделает компилятор языка С/C++.

Строки можно инициализиорвать при декларировании, например:

char S1[10]=”123456789”, S2[]=”12345”;

в последнем случае размер строки будет установлен по фактическому количеству символов.

Для ввода строки с клавиатуры дисплея используются две стандартные библи­отечные функции, прототипы которых приведены в файле stdio.h.

Функция scanf() вводит значения для строковых переменных спецификатором ввода %s. Но надо помнить, что функция scanf() вводит символы до появления первого символа “пробел”.

Библиотечная функция gets(), обеспечивает ввод строки с пробелами внутри этой строки. При этом ввод строки символов завершается нажатием клавиши ENTER.

Обе функции автоматически ставят в конец строки нулевой байт. И, кроме того, так как строка – это символьный массив, а имя массива – это указатель на его начало в памяти, то символ «&» перед именами строковых объектов при использовании этих функций указывать не надо.

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

Операции над строками, как объектом сложного типа, рекомендуется выполнять используя стандартные функции. Декларации функций для работы со строками размещены в файле string.h. Вот некоторые из наиболее часто используемых:

1. Функция strcpy (S1, S2) - копирует содержимое строки S2 в строку S1.

2. Функция strcat (S1, S2) - присоединяет строку S2 к строке S1 и помещает ее в массив, где находилась строка S1, при этом строка S2 не изменяется. Нулевой байт, который завершал строку S1, заменяется первым символом строки S2.

3. Функция strcmp (S1, S2) сравнивает строки S1 и S2 и возвращает значение =0, если строки равны, т.е. содержит одно и то же число одинаковых символов; значение <0, если S1<S2;значение >0, если S1>S2.

4. Функция strlen (S) возвращает длину строки, т.е. количество символов, начиная с нулевого и до нуль-терминатора, нулевой байт не учитывается.

5. Функции преобразования строки S в число:

целое: int atoi (S); длинное целое: long atol (S); действительное: double atof (S); при ошибке возвращает значение 0.

6. Функции преобразования числа V в строку S:

целое: itoa (int V,char S,int kod); длинное целое: ltoa (long V,char S,int kod); 2<=kod<=36, для отрицательных чисел kod=10.





Дата публикования: 2014-11-28; Прочитано: 177 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...