Строки

Строки в С обрабатываются как массивы элементов типа char. Функции для работы со строками можно найти в модуле string.h.

“\0”, - символ конца строки; его необходимо использовать, так как, не найдя его система будет заполнять строку всякой «ненужной информацией».

Пример: char s[10], - можно рассматривать как строку из 9-ти элементов, так как один символ – “\0”.

Со строками можно работать, как и с обычными массивами, т.е. возможна и начальная инициализация: char s[10] = {‘0’, ‘1’, …, ‘8’, ‘\0’}.

getchar(), - функция, считывающая один символ из вводимых.

(ввод строки): for (I=0; I<9&&(S[I]=getchar())!=’\n’; I++)

S[I]=’\0’

Для ввода строк символов может быть также использована функция gets(<идент.>) (ее прототип находится в файле stdio.h).

Если string - массив символов, то ввести строку с клавиатуры можно так:

gets(string);

(ввод оканчивается нажатием клавиши <Enter>).

Для вывода строк символов помимо потокового и форматированного вывода может использоваться функции puts(<идент.>) (ее прототип находятся в файле stdio.h). следующим образом:

puts(string);

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

Функции работы со строками:

1. strlen(<выр.>), - определяет длину строки, без учета служебного символа ‘\0’.

Используется значение самой функции.

2. strcpy(<идент.>,<выр.>), - <идент.> и <выр.> должны быть строкового типа; после вызова этой функции идентификатору присваивается значения выражения.

Здесь используется побочный результат вызова ф-ии(т.е. идентификатор принимает значение выражения), значит само значение ф-ии НЕ используется

3. strcat(<идент.>, <выр.>), - склейка строк, т.е. после вызова данной ф-ии к значению идентификатора присоединяется значение выражения.

Значение ф-ии здесь НЕ используется

4. strcmp(<выр. 1>, <выр. 2>), - посимвольное сравнение строк слева направо.

Из кодов ASCII символов строки <выражения1> вычитаются коды символов строки <выражения2>.Данная функция возвращает значение ноль, если строки равны(т.е. все коды символов совпали); отрицательное значение, если строка <выр.1> меньше строки <выр.2> и положительное значение если строка <выр.1> больше строки <выр.2>.

Здесь используется само значение функции

Копирование части строки S с позиции M в количестве N:

for (I=0; I<N; S1[I] = S[M+I-1], I++);

S1[I] = ‘\0’;

Удаление символов из строки S с позиции M в количестве N:

K=strlen(S);

for (I=0; I<K-N-M+2; S[M+I-1]=S[M+N+I-1], I++);

Вставка в строку S выражения с позиции M:

for(I=0; I<strlen(S)-M+2; S1[I]=S[M+I]-1, I++);

S[M-1]=’\0’;

strcat(S,<выр.>);

strcat(S, S1).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: