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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

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

Сообщение gvido » 28.03.2012 12:14:23

Что тут не правильно??? Смысл задачи простой. Есть строка символов. нужно проверить ее на наличие множества символов и определить есть ли символы не входящие в множество.

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'
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31

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

Сообщение Mr.Smart » 28.03.2012 12:25:43

Строка имеет индексы с 1 до Length(s)
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

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

Сообщение svk12 » 28.03.2012 12:52:19

Вместо
Код: Выделить всё
if not (a[i] in ['0'..'9']) then

можно использовать
Код: Выделить всё
if Pos(a[i],'0123456789')=0 then
svk12
постоялец
 
Сообщения: 408
Зарегистрирован: 09.06.2008 18:42:47

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

Сообщение gvido » 28.03.2012 14:05:55

Ай, Спасибо!!!!! точно индекс с 1!!!!
Я пол дня мучался не мог понять в чем дело!!!
Про индекс как то даже не подумал!!!
Еще раз спасибо!!!
gvido
постоялец
 
Сообщения: 188
Зарегистрирован: 28.03.2012 11:35:31


Вернуться в Обучение Free Pascal

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru