Предмет: Информатика, автор: LadyAna

Написать функцию F(A,B), которая добавляет в конец строки A, все буквы из A, не встречающиеся в B. Паскаль или же Си.

Ответы

Автор ответа: petyaGavrikov
0
В программе буквы добавляются по алфавиту без повторений.
var s1,s2:string;
function F(var a,b:string):boolean;
var m:set of char; i:integer; c:char;
begin
 m:=[];
 for i:=1 to length(a) do
  if pos(a[i],b)=0 then m:=m+[a[i]];
 for c:=chr(32) to chr(255) do
  if c in m then a:=a+c;
 if m=[] then f:=false else f:=true;
end;
begin
writeln('Введите строку 1:');
readln(s1);
writeln('Введите строку 2:');
readln(s2);
if f(s1,s2)
 then writeln('Новая строка: ',s1) else writeln('Строка не изменилась ');end.

Пример:
Введите строку 1:
program
Введите строку 2:
procedure
Новая строка: programagm
Автор ответа: LadyAna
0
Спасибо огромное за помощь:)
Автор ответа: LadyAna
0
А без применения множеств может эта задача решена быть?
Автор ответа: petyaGavrikov
0
Можно, конечно, и без множества (чуть подлиннее только будет).
Автор ответа: noskovee
0
        private string fuction(string a,string b)        {
            char[] massa = a.ToCharArray();            char[] massb = b.ToCharArray();            foreach(char itema in massa)            {                foreach(char itemb in massb)                {                    if(itema == itemb)                    {                        break;                    }                    else                    {                        a += itema.ToString();                        break;                    }                }            }            return a;        }
Автор ответа: noskovee
0
Вариант без использования счетчика
Автор ответа: LadyAna
0
Большое спасибо:)
Автор ответа: noskovee
0
Разберётесь?
Автор ответа: noskovee
0
foreach - полный перебор
Автор ответа: LadyAna
0
По крайней мере буду знать, в каком направлении двигаться
Похожие вопросы
Предмет: Қазақ тiлi, автор: massanema61
Предмет: Биология, автор: Khristina256