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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 00:23   #1
mego4el
Пользователь
 
Аватар для mego4el
 
Регистрация: 19.09.2010
Сообщений: 87
Вопрос циклы функций isdigit, insert

никак не могу разобраться как дописать следующие функции:

int isdigit(char c)
{




insert(char *s, char c, int i)
{
mego4el вне форума Ответить с цитированием
Старый 18.11.2010, 00:32   #2
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

isdigit проверяет, является ли символ числом? Так? а что делает insert()?
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 18.11.2010, 10:34   #3
guz
Пользователь
 
Регистрация: 29.10.2010
Сообщений: 29
По умолчанию

зачем функции?

Код:
#define isdigit(X) ({int _x = X; (_x >= 0x20 && _x <= 0x29);})
insert c заменой или с вставкой?

с заменой:

Код:
s[i] = c;
с вставкой:

дополнительные данные: длина s = sLength

Код:
for(int j = i; j < sLength + 1; j++)
{
    char tmp = s[j];
    s[j] = c;
    c = tmp;
}
У меня вопрос: mego4el, Вы таки тrолль?
guz вне форума Ответить с цитированием
Старый 18.11.2010, 17:29   #4
mego4el
Пользователь
 
Аватар для mego4el
 
Регистрация: 19.09.2010
Сообщений: 87
По умолчанию

Цитата:
У меня вопрос: mego4el, Вы таки тrолль?
;D

почему?

Цитата:
for(int j = i; j < sLength + 1; j++)
{
char tmp = s[j];
s[j] = c;
c = tmp;
}
спасибо!
Цитата:
#define isdigit(X) ({int _x = X; (_x >= 0x20 && _x <= 0x29);})
нужно именно написать что будет происходить в цикле, именно функцией!, уже столько всего перепробовал, уже не знаю что делать(
mego4el вне форума Ответить с цитированием
Старый 18.11.2010, 18:48   #5
guz
Пользователь
 
Регистрация: 29.10.2010
Сообщений: 29
По умолчанию

isdigit видимо определяет является символ (однобайтный ASCII символ) цифрой или нет, так? И возвращает 1 если да, и 0 если нет, так?
http://ru.wikipedia.org/wiki/ASCII

Извиняюсь, самому стыдно: '0' == 0x30, ... , '9' == 0x39, следовательно
Код:
int isdigit(char c) { return c >= 0x30 && c <= 0x39; }
Код:
int isdigit(char c) { return c >= '0' && c <= '9'; }
или
Код:
#define isdigit(X) ({int _x = X; (_x >= 0x30 && _x <= 0x39);})
Зачем здесь цикл?!

Хотя, если Вы индус - то напишите как-то так:

Код:
int isdigit (char c) 
{ 
    int result = 0;
    for (int i=0; i<=9; i++)
    {
          if (c == i + (int)'0') result = 1;
     }
     return result;
}
Хотя нет, не выходит у меня индусский код

Последний раз редактировалось guz; 18.11.2010 в 18:50.
guz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Insert в Multimap Progsenya Общие вопросы C/C++ 1 14.09.2010 02:10
Insert - ? Evgenii БД в Delphi 2 06.07.2009 02:24
Построение графиков функций С++ (методы аппроксимации функций) amdbodia Общие вопросы C/C++ 0 24.05.2009 15:28
использование функций в качестве параметров других функций mono Помощь студентам 0 20.04.2009 18:25
insert и update Tanusha SQL, базы данных 4 13.03.2009 14:47