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

  • Автор темы Guest_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_

Гость
#1
Народ очень надо не незнаю :)

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

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

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

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

shm

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

Serge

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

Guest_LIN

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

Гость
#7
Я так понимаю, разделитель это строка "+++".
Окэй.
Код:
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;
}
}
Естественно, это эскиз, который дорабатывается напильником
 
L

LAW

Гость
#8
Проще всего использовать функции 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();

Удачи.
 
Статус
Закрыто для дальнейших ответов.