Помогите, проект горит

Тема в разделе "Общие вопросы по С и С++", создана пользователем Guest_, 7 апр 2004.

Статус темы:
Закрыта.
  1. Guest_

    Guest_ Гость

    Народ очень надо не незнаю :)

    Допустим есть строка:
    +++B-2 - Бомбардировщик 21 века+++ 11529 13.11.2000

    а надо из неё сделать:
    a[0]=B-2 - Бомбардировщик 21 века
    a[1]=11529 13.11.2000

    да и ещё такой вопрос
    как ким образом можно убрать из строки лишние пробелы..

    Заранее спасибо кто откликнеться на эту тему!
     
  2. shm

    shm Гость

    Не совсем понятно, что сделать - массив для строк или заменять части исходной строки. И какие пробелы тут лишние? Правда, если проект горит из-за ЭТОГО :)
    Если C++, см. strstr, strchr, strset, sprintf....
     
  3. kagor

    kagor Гость

    Guest_Михаил Уточни вопрос!
     
  4. ash

    ash Гость

    Инструмент по задаче...
    Используй Regexps
     
  5. Serge

    Serge Гость

    Используйте вектора из STL и не мучайтесь, там все предусмотрено на все случаи жизни.
     
  6. Guest_LIN

    Guest_LIN Гость

    есть такие вопросы...
    на чем написан ваш проект...?
    а исходя из этого чего-нибудь придумаем...
     
  7. Гость

    Я так понимаю, разделитель это строка "+++".
    Окэй.
    Код (Text):
    const char* const splitter = "+++";
    const int splitlen = strlen(splitter);

    //------------------------

    void add_token(const char* token, int length); // token is a part of string
    void add_token(const char* token); // 0-terminated string

    //------------------------

    const char* src; // = "+++ b2 stealth bomber +++ 11529 ....."

    while(true)
    {
    const char* next_splitter = strstr(src, splitter);
    if(next_splitter != NULL)
    {
     add_token(src, next_splitter-src);
     src = next_splitter + splitlen;
    }
    else
    {
     add_token(src);
     break;
    }
    }
    Естественно, это эскиз, который дорабатывается напильником
     
  8. LAW

    LAW Гость

    Проще всего использовать функции AnsiString.
    при этом Вам необходим разделитель отделяющий одну строку от другой.
    Например ";". Тогда:
    AnsiString a;
    AnsiString a1,a2;
    a="+++B-2 - Бомбардировщик 21 века+++; 11529 13.11.2000";
    int position=a.Pos(";");
    a1=a.SubString(0,position-1);
    a2=a.SubString(position+1,a.length()-position);

    А для отрезания пробелов слева и справа от значащих символов используйте:
    a1=a1.Trim();
    a1=a1.TrimLeft();
    a1=a1.TrimRight();

    Удачи.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей