Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как найти слово в строке. Паскаль

Tiko Simonyan Ученик (151), закрыт 15 лет назад
Нужно что бы программа искала слово в в строке.

Дополнен 15 лет назад
Лучший ответ
mc_12 Мастер (2448) 15 лет назад
str:='тра та та'
iskSlovo:='та'
for i:=1 to length(str) do
if str=iskSlovo[1] then
begin
if str[i+1]=iskSlovo[2]
then
begin
writeln('slovo naideno ',iskSlovo)
break
end
end

точки с запятыми сам расставишь надеюсь, это очень черновой вариант поиска по 2-ум буквам

P.S.
все подробности на мыле
ОтправительМудрец (10387) 15 лет назад
и накуя вообще такие программы писать? в русском языке все слова чтоли из двух букв?
mc_12 Мастер (2448) для более продуманной надо больше времени, и если человек захочет - он сможет написать на её основе более продвинутую версию ps напиши программу лучше, помоги Tiko Simonyan, я к счастью умею... и я к нему не нанимался, если сильно надо пусть напишет на мыло - помогу конкретнее
Остальные ответы
LEXSUS Гуру (3959) 15 лет назад
ну.. . я бы сделал так:
разделил бы всю строку на отдельные слова (т. е. нашёл бы порядковые номера пробелов, занёс их в массив... ) потом сравнивал бы с искомым словом, те части строки, которые заключены между пробелами
как то так....
anton vЗнаток (267) 1 год назад
Иногда те кто дают такие задания могут дать строку Laz12trem542nzks, и слово "12", например, так что лучше делать проверку не опираясь на пробелы
anton v Знаток (267) 1 год назад
program str1;

var
str, word, newWord: string;
i, j, number, correctWord : integer;
isIdenticaly: boolean;


begin
correctWord := 0;
writeln ('Введите строку');
readln(str);
writeln ('Введите cлово');
readln(word);

//количество возможных слов и соответственно итераций цикла
number:= Length(str)-(Length(word)-1);


//Тут мы запускаем цикл, который повторится столько раз, сколько возможно получить слов такой же длины, как искомое слово
for i:=1 to number do
begin


isIdenticaly:= true; //Это переменная которая изначально равна true, но меняет значение на false если символ искомого слова не соответствует символу нового слова

//тут запускаем цикл внутри цикла, который проверяет каждую букву нового слова на соответствие символу искомого слова
for j:=0 to (Length(word)-1) do
begin

if (str[i+j] <> word[j+1]) then
begin
isIdenticaly:= false; //В этом месте мы меняем true на false если хоть один символ слова отличается от искомого
break;
end;

end;
if (isIdenticaly = true) then // Тут мы проверяем, если эта переменная осталась true до этого момента, значит все символы соответствуют
begin
correctWord:= correctWord + 1;
end;
end;

writeln(correctWord); //выводим количество найденных подходящих слов

end.
Похожие вопросы