Вопрос: Поиск в строке...

Ask for help

Moderators: Murderator+, Murderator

Post Reply
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Вопрос: Поиск в строке...

Post by DerMeister =) »

Вот задача: Имеется две строки, надо определить является ли строка 1 частью строки 2...
Помогите пожалуйста...

Желательно получить процедуру, которая возвращает либо true, либо false:

Code: Select all

FindInString(string1,string2)

Поиск лучше вести с конца строки...
DerMeister сейчас на нейрале!
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Post by admir »

Code: Select all

#string1 - main ,string2 -compare with string1
sub FindInString(string1,string2)
  if len(string1)<len(string2) then
    return 0
  end if 
  for var i=0 to (len(string1)-len(string2))
      if mid(string1,i,len(string2)) == string2 then
          return 1
      end if
  next
  return 0
end sub
Last edited by admir on 2006-04-30 22:22:37, edited 1 time in total.
DerMeister =)
Expert!
Posts: 1032
Joined: 2006-02-25 21:48:38

Post by DerMeister =) »

admir wrote:

Code: Select all

#string1 - main ,string2 -compare with string1
sub FindInString(string1,string2)
  if len(string1)<len(string2) then
    return 0
  end if 
  var i,l
  for i=0 to (len(string1)-len(string2))
      if mid(string1,i,len(string2)) == string2 then
          return 1
      end if
  next
  return 0
end sub


:D Круто! Спасибо! Только помоему эта процедура ищет слева направо...

С права на лево,наверное, будет так:

Code: Select all

#string1 - main ,string2 -compare with string1
sub FindInString(string1,string2)
  if len(string1)<len(string2) then
    return 0
  end if 
  var i,l
  for i=(len(string1)-len(string2)) to 0 step -1
      if mid(string1,i,len(string2)) == string2 then
          return 1
      end if
  next
  return 0
end sub
DerMeister сейчас на нейрале!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

admir wrote:

Code: Select all

#string1 - main ,string2 -compare with string1
sub FindInString(string1,string2)
  if len(string1)<len(string2) then
    return 0
  end if 
  for var i=0 to (len(string1)-len(string2))
      if mid(string1,i,len(string2)) == string2 then
          return 1
      end if
  next
  return 0
end sub


Доработай эту функцию чтобы она возвращала позицию начала подстроки в строке, 0 - если не найдено. И будет хорошая стандартная функция.
Post Reply