Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Оставим от текста только цифры, простая функция - перебор 
:(
    Опции темы
oper54
  Дата 1.6.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 13.5.2005

Репутация: нет
Всего: 1



Помогите пожалуйста....
Функция убирающая из строки все символы оставляя лишь числа.
Очевидно что при написании этой функции я где-то ЗАТУПИЛ smile , ибо функция не работает
Код

void bugz(AnsiString* pStr){
 if(!pStr) return;

 char num[] = "1234567890";
 bool flag(false);
 unsigned int yy(0);

 for(int xx = 0; xx <= pStr->Length(); xx++){
  for( yy = 0; yy < strlen(num); yy++)
   if(pStr->SubString(xx, xx) != num[yy]) flag = false;
   else{flag = true; break;}
  if(!flag) pStr->Delete(xx, 1);
 }
}

Если у кого-то есть предложения как сделать функцию не "тупым перебором" или как-то оптимизировать код, поделитесь мыслями буду очень благодарен....
PM MAIL   Вверх
sergejzr
Дата 1.6.2005, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: нет
Всего: 360



Ой, ну ничего себе код smile

Код

void makeNumber(char* input)
{
    char * begunok=input;//теперь у нас два указателя 
        //один просто побежит по строке, другой будет на ячейке после последней цифры

    for(;*input;input++) //бежим input'oм по строке 
    {
        if(*input>='0'&&*input<='9') //Если число
        {
            *begunok++=*input; //копируем символ после последней цифры и сдвигаем указатель
        }
    }
    *begunok=0; //обозначим конец строки
}


А передашь в эту функцию pStr ->c_str();


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
oper54
Дата 1.6.2005, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 13.5.2005

Репутация: нет
Всего: 1



sergej.z спасибо, разобрался.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0996 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.