Помощь - Поиск - Пользователи - Календарь
Полная версия: Поиск в строке
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Lennon
добрый день! Помогите пожалуйста решить такую задачу:
Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.
Спасибо.
мисс_граффити
Пробовал(а)? Что КОНКРЕТНО не получилось?
Гость
Пробовал:
var
s,s1:string;
i,j,k:integer;
begin
ClrScr;
WriteLn('BBEDITE CTPOKY');
ReadLn(s);
s1:='';
For i := 2 To Length(s) do s1 := s1 + s[i];
While s <> '' do
begin
For i := 1 to Length(s1) do
IF s[1] <> s1[i] Then WriteLn(s[1]);
delete(s,1,1);
delete(s1,1,1);

end;
Вот, ну это только одна из вариаций, а пробовал туеву хучу раз!
Гость
так, что? Никто не поможет???
Malice
Ну вот так например:
var s:string;
i:integer;
c:char;
begin
i:=0;
readln (s);
for c:=#0 to #255 do if pos(c,s)>0 then inc(i);
writeln(i);
end.

Гость
Не... насколько я понял, эта программа выведет все символы на экран??? А мне надо, уже в введеной строке подсчитать символы, которые в этой строке встречаются один раз!
Malice
Компилируешь в уме? Тогда почему сам не сделал? Проверь сначала, а потом еще определись, что нужно: колво различных символов или тех, что 1 раз встречаются..
Гость
проверим;)
просто я прогаю не так уж и давно.... Так, что прошу меня строго не судитьsmile.gif))
Malice
Понятно. Для второго варианта (про 1 раз) цикл будет чуть другой, типа:

for j:=1 to length(s) do
if pos(s[j],copy(s,1,j-1)+copy(s,j+1,255))=0 then inc (i);
Гость
за ранее большое Спасибо !
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.