Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 20:24   #1
zoom711
 
Регистрация: 24.02.2011
Сообщений: 9
По умолчанию Задача: Получить номер телефона из текста

Алгоритм думаю такой:
1) Записываем введенную строку в массив
2) Проверяем, есть ли в массиве цифры, записываем их.
3) Если подходят по шаблону, то выводим на экран с соответственным сообщением.

Теория не сложная, а вот практика не получается(
zoom711 вне форума Ответить с цитированием
Старый 23.03.2011, 20:35   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Покажите, что получилось!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.03.2011, 20:37   #3
zoom711
 
Регистрация: 24.02.2011
Сообщений: 9
По умолчанию

Так потому сюда написал, что ничего не получилось.
zoom711 вне форума Ответить с цитированием
Старый 23.03.2011, 20:54   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Так потому сюда написал, что ничего не получилось.
так не бывает! Точнее бывает - если ничего не хочешь делать!
Описание переменных, ввод строки, вывод результата - это есть?
Язык программирования то какой?


Цитата:
1) Записываем введенную строку в массив
Скорее всего, это бессмысленно. В Pascal (да и не только) строка это уже и так массив символов.


Цитата:
2) Проверяем, есть ли в массиве цифры, записываем их.
3) Если подходят по шаблону, то выводим на экран с соответственным сообщением.
это в принципе верно. Только проверка будет ОЧЕНЬ сильно отличаться от того:
- как задан у Вас шаблон? Он один или несколько? Будут ли использоваться регулярные выражения?
- номер телефона в строке один или их может быть несколько?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.03.2011, 21:05   #5
zoom711
 
Регистрация: 24.02.2011
Сообщений: 9
По умолчанию

не могу разобратся с функцией isdigit:
Код:
int _tmain(int argc, _TCHAR* argv[])
{
	setlocale(LC_ALL,".1251");
	char sms[171];
	printf("Введите смс\n");
	gets(sms);

	for (int i=0;sms[i];i++)
		if isdigit(sms[i])=1;
	printf("!!");

	
	return 0;
}
ошибка: 1>c:\users\zoom711\documents\visua l studio 2008\projects\lab 7\lab 7\lab 7.cpp(19) : error C2061: синтаксическая ошибка: идентификатор "isdigit"

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
- как задан у Вас шаблон? Он один или несколько? Будут ли использоваться регулярные выражения?
Шаблона 3, номер начинается с 0, с + или с 8


_____________________________
Не надо плодить подряд несколько коротких сообщений!
Это нарушение правил...
для того, чтобы через минуту/другую дописать сообщение,
не надо создавать ещё один новый пост.
нажимайте на предыдущем кнопку "Правка"
и дописывайте в своё сообщение, что Вы хотели добавить!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.03.2011 в 21:59.
zoom711 вне форума Ответить с цитированием
Старый 23.03.2011, 21:26   #6
skgwazap
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 40
По умолчанию

выражение после if нужно записывать в скобках
skgwazap вне форума Ответить с цитированием
Старый 23.03.2011, 21:33   #7
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

что-то типа этого: if(0=<sms[i]-'0' && sms[i]-'0'<10)
ololo-schoolboy вне форума Ответить с цитированием
Старый 23.03.2011, 21:35   #8
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Цитата:
выражение после if нужно записывать в скобках
и еще в той же строке присваивание записывается как ==
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 23.03.2011, 21:36   #9
zoom711
 
Регистрация: 24.02.2011
Сообщений: 9
По умолчанию

Немного подправил, но всё равно не пускает далее:

Цитата:
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,".1251");
char sms[171];
int a=1;
printf("Введите смс\n");
gets(sms);

for (int i=0;sms[i];i++)
a=isdigit(sms[i]);
if (a==1)
printf("!!!");


return 0;
}

Последний раз редактировалось zoom711; 23.03.2011 в 21:41.
zoom711 вне форума Ответить с цитированием
Старый 24.03.2011, 21:41   #10
ololo-schoolboy
Форумчанин
 
Регистрация: 25.12.2010
Сообщений: 247
По умолчанию

Код:
for (int i=0;sms[i];i++)
if (isdigit(sms[i]))
printf("the %d character of sms is digit!!!\n", i+1);
ololo-schoolboy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стереть номер телефона из памяти (телефон стационарный) dr.Chas Свободное общение 5 09.05.2010 15:45
справка о междугороднем тел. разговоре содержит: номер телефона абонента(6 цифр),дату(год, месяц, число) @RH@nhel Помощь студентам 2 21.06.2009 10:12
как изъять номер телефона? fynjy_79 Microsoft Office Excel 10 29.05.2009 16:21
как програмно увидеть телефонный звонок и номер телефона LiderServis Мультимедиа в Delphi 1 17.01.2009 12:03
Номер телефона словами alexBlack Софт 0 23.05.2008 09:19