Страница 1 из 1
Работа со строками
Добавлено: 16 янв 2007, 22:05
Колядин Максим
Да, задачи на первый-то взгляд лёгкие....
1)Дан текст. Посчитать количество слов, заканчивающихся на заданную букву и перенести их в другую строку, написав через запятую. Вывести полученную строку на экран.
2)Дан текст. Посчитать количество слов в тексте.
Заранее спасибо.
Re: Работа со строками
Добавлено: 16 янв 2007, 22:44
Хыиуду
Откуда берется текст? Из файла, из Мемо, откуда-то еще?
Как разбивать строку на слова - где-то обсуждалось (по-моему Cade спрашивал, а Somewhere отвечал).
стало быть (изображаю общую идею, думаю, разберешься)
Код: Выделить всё
wordscount:=0;
zadannayabukva='A';
for i:=0 или 1 (в зависимости от нумерации) to textlinescount do
begin
s:=text[i];
s_out:='';
while s<>'' do
begin
s1:={взять слово из строки s};
inc(wordscount);
if s1[length(s1)]=zadannayabukva
then s_out:=s_out+s1+', ';
end;
delete(s_out,length(s_out),2);// удаляем последнюю запятую и пробел
writeln(s_out);
end;
Re: Работа со строками
Добавлено: 17 янв 2007, 03:00
Колядин Максим
Спасибо, разобрался
Re: Работа со строками
Добавлено: 29 янв 2007, 02:50
Oleg_Rus
Хыиуду, а не проще ли будет заранее поставить условие сравнения с Zadannayabukva
if (text=Zadannayabukva) and (Text[i+1] = ' ') Then
// забивай в в строку
мне кажется так будет и проще, и понятней...
Re: Работа со строками
Добавлено: 30 янв 2007, 10:20
Хыиуду
Можно и так. Тогда надо еще проверять не только пробел, но и некоторые знаки препинания. Например, запятая или точка после буквенного символа однозначно указывает на окончание слова, а дефис или апостроф являются частями слова (кое-где, д'Артаньян). И еще сделать проверку, не является ли буква последней в строке. А то ведь падать будет с эксепшном...
if (text=Zadannayabukva) and
((i=length(text)) or (pos(Text[i+1],' !?.,')<>0)
Then // забивай в в строку
Re: Работа со строками
Добавлено: 01 фев 2007, 04:30
Oleg_Rus
Точно... так будет и красивее и более наглядно
Re: Работа со строками
Добавлено: 01 фев 2007, 10:11
Хыиуду
Oleg_Rus писал(а):Точно... так будет и красивее и более наглядно
Ну... не скажу, что красивее и более наглядно, зато правильнее и более надежно
