Пример 6. Дана строка. Написать программу, заменяющую в строке все буквы «а» на буквы «о».
Var s:string;
i:integer;
begin
read(s);
for i:=1 to length(s) do if s[i]='а' then s[i]:='о' ;
write(s);
end.
Пример 7. Дана строка. Написать программу, вставляющую после каждой точки символ пробела.
Без привлечения дополнительных знаний, используя только одну строку, задачу решить не удастся. Поэтому заведем вторую строку и будем в неё переписывать по одному символу из оригинальной строки. Если повстречаем символ точки, то будем к новой строке добавлять пробел.
Var s_old, s_new:string;
i:integer;
begin
read(s_old);
s_new:=''; // задаем начальное значение новой строки
for i:=1 to length(s_old) do // просматриваем каждый символ строки
begin
s_new:=s_new+s_old[i]; // добавляем символ к новой строке
if s_old[i] = '.' then s_new:=s_new+' '; // если символ равен точке, то добавляем пробел
end;
write(s_new);
end.
Обратите внимание, как задается начальное значение новой строки:
s_new:='';
Используя две подряд одинарные кавычки, в строку записывается пустая строка, т. е. строка, не содержащая ни одного символа.
Коротко о главном
Для хранения строк текста в языке Pascal используются переменные типа string. Одна переменная этого типа может хранить строку длиной до 255 символов.
К каждому символу строки можно обратиться по его номеру как к элементу массива.
К строкам применима операция «+», которая позволяет склеивать две строки в одну.
Длину строки можно узнать с помощью функции length.
Упражнения
1. Определить, что будет выведено на экран после выполнения фрагмента программы:
а) s:='Hello world!';
writeln(Length(s) );
б) s:='мотор';
writeln(s[3]+s[2]+s[5]);
в) s:='ответ';
writeln(s[1]+s[length(s) ]).
Выполнить следующие задания.
2. Дана строка длиной более двух символов. Написать программу, выводящую на экран строку, составленную из первого, второго и последнего символов исходной строки.
3. Даны две строки. Написать программу, определяющую длину строки, которая получится после склейки двух исходных строк.
4. Дана строка. Написать программу, определяющую, совпадают ли первый и последний символы строки. Если совпадают, вывести true (ист), иначе вывести false (ложно).
5. Даны строка S и символ С. Написать программу, определяющую, сколько раз в строке S встречается символ С.
6. Дана строка, содержащая несколько слов, разделенных одним пробелом. В начале строки и в конце пробелов нет. Написать программу, подсчитывающую количество слов в предложении.
7. Даны строка S и символы А и В. Написать программу, определяющую, какой символ – А или В – встречается чаще.
8. Даны строка S и символы А и В. Написать программу, заменяющую в строке S все символы, равные символу А, на символ В.
9. Даны строка S и символы А и В. Написать программу, заменяющую в строке S все символы, равные символу А, на символ В, а все символы, равные символу В, на символ А.
10. Дана строка. Написать программу, выводящую порядковые номера всех гласных букв строки.
11. Дана строка, содержащая только цифры. Написать программу, определяющую количество чётных цифр во введенной строке.
12. Дана строка, содержащая слова. Некоторые из слов взяты в круглые скобки. Написать программу, выводящую исходную строку без скобок.
13. Дана строка. Написать программу, которая определяет, является ли строка перевертышем, т. е. читается ли она одинаково как слева направо, так и справа налево. Если строка является перевертышем, выведите true (ист), иначе выведите false (ложно). Например ШАЛАШ – перевёртыш.
14. Даны строка S и символ В. Написать программу, которая удваивает каждое вхождение символа В в строку S (каждый символ В заменить на ВВ).
15. Дана строка, содержащая слова, разделенные одним или несколькими пробелами. Написать программу, заменяющую каждый пробел парой символов «!?».
16. Дана строка, состоящая только из цифр. Найти сумму этих цифр.
17. Даны две строки. Вывести символы, встречающиеся и в той, и в другой строках.
Комментариев нет:
Отправить комментарий