Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.04.2011, 15:26
Аватар для Rick
Rick Rick вне форума
Прохожий
 
Регистрация: 05.03.2011
Сообщения: 18
Репутация: 10
По умолчанию Сравнение двух строк

Здравствуйте. Необходимо сравнить две строки одинаковой длинны и выдать количество символов, которые совпадают не только по значению, но и по позиции в этих строках. например: пароход и проходы - одинаковых символов: 1 - "п"
Ответить с цитированием
  #2  
Старый 08.04.2011, 15:28
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

А где ваш код?
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #3  
Старый 08.04.2011, 15:33
Аватар для Rick
Rick Rick вне форума
Прохожий
 
Регистрация: 05.03.2011
Сообщения: 18
Репутация: 10
По умолчанию

Пробовал через преобразование их в массивы, и потом поэлементно сравнивать их, но результат всегда равне 1-му, хотя строки могут быть абсолютно одинаковыми
Код:
var
Total :string;//строка2
   ss:string;//строка1
 a:array of shortstring;//наш массив
 a2:array of shortstring;//наш массив
//........................................................................
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
total:='';
ss:='aaaabbcddb';
edit2.Text :=ss;
for i:=low(ansArr) to qCount-1 do begin
  total:= total + ansArr[i];//+ ';';
 end;
 edit1.Text :=total;
 Repeat //мы постепенно заполняем массив на каждом шаге цикла по 1 элементу
    setlength(a,length(a)+1);//увеличиваем размер массива на 1
    if pos(' ',ss)>0 then //если есть пробел то надо взять слово до пробела
      begin
        a[length(a)-1]:=copy(ss,1, pos(' ',ss));//присвоение последнему элементу массива первого слова
        ss:=copy(ss,pos(' ',ss)+1, length(ss));//удаляем из строки первое слово
      end
    else//в строке осталось только одно слово
      begin
        a[length(a)-1]:=ss;// присвоим последнее слово
        break;//выход из цикла
      end;
  Until False;
  Repeat //мы постепенно заполняем массив на каждом шаге цикла по 1 элементу
    setlength(a2,length(a2)+1);//увеличиваем размер массива на 1
    if pos(' ',total)>0 then //если есть пробел то надо взять слово до пробела
      begin
        a2[length(a2)-1]:=copy(total,1, pos(' ',total));//присвоение последнему элементу массива первого слова
        total:=copy(total,pos(' ',total)+1, length(total));//удаляем из строки первое слово
      end
    else//в строке осталось только одно слово
      begin
        a2[length(a2)-1]:=total;// присвоим последнее слово
        break;//выход из цикла
      end;
  Until False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var z,i,j:integer;
r:string;
begin
z:=0;
for i:=low(a) to high(a) do  begin
if a2[i]=a[i]  then
z:=z+1;
end;
edit3.Text :=inttostr(z);
end;
Ответить с цитированием
  #4  
Старый 08.04.2011, 15:34
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Код:
var
s1,s2:string;
i:integer;
begin
s1:='1234';
s2:='3231';
for i:=1 to length(s1) do
if s1[i]=s2[i] then //здесь соответственно подсчеты
end;

Последний раз редактировалось Pilot_Red, 08.04.2011 в 15:38.
Ответить с цитированием
  #5  
Старый 08.04.2011, 15:41
Аватар для Rick
Rick Rick вне форума
Прохожий
 
Регистрация: 05.03.2011
Сообщения: 18
Репутация: 10
По умолчанию

Спасибо Pilot_Red. Решение было на поверхности, а я ушел в дебри
Ответить с цитированием
  #6  
Старый 08.04.2011, 15:46
Аватар для BROOKS
BROOKS BROOKS вне форума
Прохожий
 
Регистрация: 25.11.2009
Сообщения: 15
Репутация: 4
По умолчанию

dsadsa das das
Ответить с цитированием
  #7  
Старый 08.04.2011, 15:56
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от BROOKS
dsadsa das das
Это к чему?
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter