Страница 1 из 1

Проверка вхождения в строку символов

СообщениеДобавлено: 28.03.2012 12:14:23
gvido
Что тут не правильно??? Смысл задачи простой. Есть строка символов. нужно проверить ее на наличие множества символов и определить есть ли символы не входящие в множество.

function isisonum(a:string):integer;
var
i,e:integer;
begin
e:=0;
for i:=0 to length(a)-1 do
begin
if not (a[i] in ['0'..'9']) then
inc(e);
end;
isisonum:=e;
end;

showmessage(inttostr(isisonum('50043908a8210d0k421')));

неправильно отрабатывается вхождение ' if not (a[i] in ['0'..'9']) then'

Re: Проверка вхождения в строку символов

СообщениеДобавлено: 28.03.2012 12:25:43
Mr.Smart
Строка имеет индексы с 1 до Length(s)

Re: Проверка вхождения в строку символов

СообщениеДобавлено: 28.03.2012 12:52:19
svk12
Вместо
Код: Выделить всё
if not (a[i] in ['0'..'9']) then

можно использовать
Код: Выделить всё
if Pos(a[i],'0123456789')=0 then

Re: Проверка вхождения в строку символов

СообщениеДобавлено: 28.03.2012 14:05:55
gvido
Ай, Спасибо!!!!! точно индекс с 1!!!!
Я пол дня мучался не мог понять в чем дело!!!
Про индекс как то даже не подумал!!!
Еще раз спасибо!!!