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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> строки удаление лид. нуля 
:(
    Опции темы
Sacha89
Дата 16.10.2007, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



нужно в строке удалить лидируюшие нули  то есть
234 0234 01023 2340 = 234 234 1023 2340
есть процедура но она не работает(не удаляет нули)
(во входящей строке символы разделяются только одним пробелом)

int DelZero(char *from, char *to )
{
    char* tmp = to;
    while (*from &&*from!='\t'){
         *to++ = *from++;
                       if (*to==' '&& (++*to=='0'))
                  delete(++to);
    }
      *to = '\0';
    return to - tmp;
}

 подскажите как сделать чтобы все работало
PM MAIL   Вверх
Fazil6
Дата 16.10.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Код

char *SkipZero(char *from)
{
    while(*from && *from == '0'){ ++from; }
    
    return from;
}

void DelZero(char *from, char *to )
{
    from = SkipZero(from);
    while(*from)
    {
        *to++ = *from;
        if(*from++ == ' ') 
        {
            from = SkipZero(from);
        }
    }
    *to = 0;
}

PM MAIL   Вверх
Dov
Дата 17.10.2007, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 15
Всего: 88



Код

void DelZero(char* to, char* from)
{
    while(*from)
    {
        while(*from && *from == ' ' || *from == '0')        
           from++;
        while(*from && *from != ' ')        
           *to++ = *from++;

        *to++ = *from++; 
    }
    *to = '\0';
}

int main()
{
    char str[] = "234 0234 01023 2340";
    char s[sizeof(str)];
    
    DelZero(s, str);
    cout << s << endl;

    return 0;
}


Строка такого вида, например: 
Код
 сhar str[] = "   00020034     00023004    000001023   0002340    ";

тоже должна отображаться правильно, т.е. будут удалены и лишние нули и лишние пробелы.  smile 

Это сообщение отредактировал(а) Dov - 17.10.2007, 01:17


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Sacha89
Дата 17.10.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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