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

Обработка символьных строк



В языках Си/Си++ нет специально определенного строкового типа данных, как в Турбо Паскале. Символьные строки организу­ются как массивы символов, последним из которых является сим­вол \0, внутренний код которого равен нулю. Отсюда следует одно важное преимущество перед строками в Турбо Паскале, где раз­мер строки не может превышать 255 (длина указывается в первом байте), — на длину символьного массива в Си нет ограничения.

Строка описывается как символьный массив. Например:

char STR[20];

Одновременно с описанием строка может инициализировать­ся. Возможны два способа инициализации строки — с помощью строковой константы и в виде списка символов:

сhаr 3[10] "строка";

сhаr 3[ ]="строка";

сhаr 3[10]={'с','т','р','о','к','а','\0'};

По результату первого описания под строку S будет выделено 10 байт памяти, из них первые 7 получат значения при инициализа­ции (седьмой — нулевой символ). Второе описание сформирует стро­ку из семи символов. Третье описание по результату равнозначно первому. Конечно, можно определить символьный массив и так:

сhаr S{.10]={'с','т','р','о', 'к','а'];

т. е. без нулевого символа в конце. Но это приведет к проблемам с обработкой такой строки, так как будет отсутствовать ориентир на его окончание.

Отдельные символы строки идентифицируются индексирован­ными именами. Например, в описанной выше строке S [ 0 ] = ' с ', S[5]='а'.

Обработка строк обычно связана с перебором всех символов от начала до конца. Признаком конца такого перебора является об­наружение нулевого символа. В следующей программе произво­дятся последовательная замена всех символов строки на звездоч­ки и подсчет длины строки.

Пример 16:

//Замена символов на звездочки

#include <stdio.h>

#include <conio.h>

void main ()

{ char S[ ]="fh5j";

int i=0;

clrscr();

puts (S);

while(S[i])

{S[i++]='*'; puts(S);}

printf ("\n, Длина строки=",i);

}

В результате выполнения программы на экране получим:

fh5j

*h5j

**5j

* * * j

****

Длина строки=4

В этой программе цикл повторяет свое выполнение, пока S [1] не получит значение нулевого символа.

Для вывода строки на экран в стандартной библиотеке stdio имеется функция puts (). Аргументом этой функции указывается имя строки. В этой же библиотеке есть функция ввода строки с клавиатуры с именем gets (). В качестве аргумента указывается имя строки, в которую производится ввод.

Среди стандартных библиотек Си/Си++ существует библиоте­ка функций для обработки строк. Ее заголовочный файл — string.h. В следующем примере используется функция определе­ния длины строки из этой библиотеки. Имя функции — strlen (). В качестве аргумента указывается имя строки (приложение Б).





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



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