Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » строки в С++

Ответить
Настройки темы
строки в С++

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


из строки IN = "aa dd ff rr" надо создать массив строк OUT :"aa","dd","ff","rr".
длина IN известна.

пожалуйста не бросайте в беде начинающего!!!!!!!!!!!!!!!!!!!!!!!!!!!


Отправлено: 19:01, 26-06-2004

 

Ночной странник


Contributor


Сообщения: 4050
Благодарности: 83

Профиль | Сайт | Отправить PM | Цитировать


rodman
добро позаловать на форум

я помогу тебе с этой проблеммной ( чуть поздже, сейчс просто нет времени чтобы напистаь соответсвующий код), но я должен пердупредит что в результате я на выделяю определенное количество памяти котлорое надо будет потом не забыть освободить!

-------
можно практически все, но просто мы это еще не знаем.
главный враг програмиста это копипастинг
За хорошее сообщение не забываем нажимать ссылочку "Полезное сообщение"!


Отправлено: 19:30, 26-06-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


rodman
Пример, написанный сходу. Больше похоже на С, нежели на с++
Код: Выделить весь код
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int main() 
{ 
  char IN[]="aa bb cc dd"; 
  char **OUT=NULL; 
  char *p=IN; 
  char *pszn = NULL; 
  int n=0; 
 
  while (pszn = strsep(&p, " ")) 
  { 
    OUT=(char**)realloc(OUT, sizeof(char*)*(n+2)); 
    if (!OUT) { perror("realloc"); return -1; } 
    OUT[n]=pszn; 
    n++; 
  } 
 
  OUT[n]=NULL; 
  for (n=0, p=OUT[0]; p=OUT[n]; n++) 
  printf("%s\n", p); 
 
... 
 
  //не забудьте освободить OUT 
  free(OUT); 
  return 0; 
}

Отправлено: 14:56, 28-06-2004 | #3

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


на C++:  
Код: Выделить весь код
#include <sstream> 
#include <string> 
using namespace std; 
 
... 
 
string input1 = "aa bb cc dd12 eefg"; 
stringstream oss(input1); 
 
string s1, s2, s3, s4, s5; 
 
oss >> s1 >> s2 >> s3 >> s4 >> s5; 
 
cout << s1 << endl; 
cout << s2 << endl; 
cout << s3 << endl; 
cout << s4 << endl; 
cout << s5 << endl;
на экране выдаст твои слова, каждое в новой строке.

Добавлено:

как тут "код" пишется?


[s]Исправлено: hasherfrog, 9:03 1-07-2004[/s]

Отправлено: 12:01, 30-06-2004 | #4


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


pva тэг {{code}} {{/code}}



Добавлено:

pva
Проблема в том, что число слов у Вас заранее известно. У rodman известна длина IN, а не число слов.

Отправлено: 13:04, 30-06-2004 | #5


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо * hasherfrog * и * pva * !
я просто переносил программу с Бейсика на С++ соблазнившись легкостью создания GUI в Builder'e. поэтому не смейтесь, но народилось вот что:

String StrIN = RichEdit1->Text;
String Buf[128];
unsigned short k = 1;

for (unsigned short i = 1; i <128; i++){
*Buf[i] = MidStr(StrIN, k, 2);
*k = k + 3;/// не полностью сформулировал условия (длина элементов Buf тоже была известна-Sorry:-)))
........

Еще раз спасибо за ответы - пригодятся.


Отправлено: 00:03, 01-07-2004 | #6


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


rodman
>> длина элементов Buf тоже была известна
Нууу, тогда это совсем по-другому надо было делать... Поточнее будьте в следующий раз.


Отправлено: 09:08, 01-07-2004 | #7

pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


На счёт кол-ва слов:

Код: Выделить весь код
string st;
while(oss>>st)
{
    // do something with st
    cout << st;
}

Отправлено: 12:54, 02-07-2004 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » строки в С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Трей в 2 строки .ExeRun Microsoft Windows 7 2 31-12-2010 01:22
.NET - перечисляемые строки Surround Программирование и базы данных 3 05-10-2009 19:57
MySQL - Автозамена строки из другой строки - trigger? procedure ? BugZZ Программирование и базы данных 0 18-09-2009 09:51
Строки в С\С++ netmax Программирование и базы данных 30 03-11-2003 18:57




 
Переход