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

Поиск:

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


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

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



есть строка из слов ,разделенных пробелами ,запятыми, интерами.Есть ли :
1) ф-ия перевода слов строки в элементы массива?
2) есть ли ф-ия определяющая число элементов массива?
3) Ф-ия удаления элемента с последующим сдвигом всех элементов?
PM   Вверх
susanin
Дата 27.9.2008, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



эти функции самому можно быстро написать..легкие ведь..в java вторая точно функция точно есть, в с++ не помню..в с++ есть функция определяющая размер вектора...это в принципе тот же массив..только лучше=)
PM MAIL   Вверх
rthsobakas
Дата 27.9.2008, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 562
Регистрация: 20.9.2007

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




эти функции самому можно быстро написать..легкие ведь

просто я запарился каждый год их писать))) просто каждый год лабы меняются,но принцип остается тот же... Кроме явы в пхпшнике есть такие ф-ии точно знаю))
PM   Вверх
vinter
Дата 27.9.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Цитата(rthsobakas @  27.9.2008,  22:52 Найти цитируемый пост)
1) ф-ия перевода слов строки в элементы массива?

строка это массив символов
Цитата(rthsobakas @  27.9.2008,  22:52 Найти цитируемый пост)
2) есть ли ф-ия определяющая число элементов массива?

sizeof
Цитата(rthsobakas @  27.9.2008,  22:52 Найти цитируемый пост)
3) Ф-ия удаления элемента с последующим сдвигом всех элементов?

нет


--------------------
Мой блог
PM MAIL WWW   Вверх
susanin
Дата 27.9.2008, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



vinter

Цитата(vinter @  27.9.2008,  23:14 Найти цитируемый пост)
2) есть ли ф-ия определяющая число элементов массива?sizeof

справедливости ради надо заметить что эта функция возвращает не число элементов а размер массива в байтах, т.е. суммарный размер всех элементов.. а чтобы узнать число элементов надо еще поделить это значение на sizeof(element)
PM MAIL   Вверх
J0ker
Дата 28.9.2008, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

#include <vector>
#include <string>
#include <algorithm>

const char *delimiters = " ,.!?\n";
const char *str = "To simplify code development for various international markets,\nthe Microsoft run-time library provides Microsoft-specific \"generic-text\"\nmappings for many data types, routines, and other objects.\nThese mappings are defined in TCHAR.H. You can use these name mappings to write\ngeneric code that can be compiled for any of the three kinds of character sets:\nASCII (SBCS), MBCS, or Unicode, depending on a manifest constant you define using a #define statement.\nGeneric-text mappings are Microsoft extensions that are not ANSI compatible.";

int _tmain(int argc, _TCHAR* argv[])
{
    const char *first_d = delimiters;
    const char *last_d = first_d + strlen(delimiters);
    const char *last = str + strlen(str);
    std::vector<std::string> arr;
    for(const char *first = str; first < last;) {
        for(; first < last && std::find(first_d, last_d, *first) != last_d; ++first);
        const char *s = first;
        first = std::find_first_of(first, last, first_d, last_d);
        if(s < first)
            arr.push_back(std::string(s, first));
    }
    return 0;
}



--------------------
user posted image
PM MAIL   Вверх
UnrealMan
Дата 28.9.2008, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Boost Spirit в помощь smile 
PM MAIL   Вверх
J0ker
Дата 28.9.2008, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(UnrealMan @ 28.9.2008,  01:55)
Boost Spirit в помощь smile

Код

#include <vector>
#include <string>
#include <boost/spirit.hpp>

using namespace BOOST_SPIRIT_CLASSIC_NS;

const char *str = "To simplify code development for various international markets,\nthe Microsoft run-time library provides Microsoft-specific \"generic-text\"\nmappings for many data types, routines, and other objects.\nThese mappings are defined in TCHAR.H. You can use these name mappings to write\ngeneric code that can be compiled for any of the three kinds of character sets:\nASCII (SBCS), MBCS, or Unicode, depending on a manifest constant you define using a #define statement.\nGeneric-text mappings are Microsoft extensions that are not ANSI compatible.";

int _tmain(int argc, _TCHAR* argv[])
{

    std::vector<std::string> v;

    rule<> delimiter_p = space_p | punct_p;
    rule<> other_p = anychar_p - delimiter_p;

    parse(str, *delimiter_p >> *((+other_p)[push_back_a(v)] >> *delimiter_p));

    return 0;
}



 smile 

Это сообщение отредактировал(а) J0ker - 29.9.2008, 04:44


--------------------
user posted image
PM MAIL   Вверх
Annihilator
Дата 28.9.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



Цитата(vinter @  28.9.2008,  03:14 Найти цитируемый пост)
Цитата(rthsobakas @  27.9.2008,  22:52 )1) ф-ия перевода слов строки в элементы массива?строка это массив символов

Скорее тут имеется ввиду, что функция выделяет слова в строке (только буквы) и заносит в массив, поскольку автор пишет:
Цитата(rthsobakas @  28.9.2008,  01:52 Найти цитируемый пост)
есть строка из слов ,разделенных пробелами ,запятыми, интерами.

Я бы посоветовал:
п.1 осуществить с помощью алгоритмов (выбрать слова)
find_first_of()
find_first_not_of()

и вставить их, скажем в std::list<std::string>

п.2
list.size()

п.3
list.remove() или list.erase()




--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
J0ker
Дата 28.9.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



find_first_not_of() не алгоритм
это метод basic_string


--------------------
user posted image
PM MAIL   Вверх
Annihilator
Дата 29.9.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

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



Цитата(J0ker @  28.9.2008,  22:02 Найти цитируемый пост)
find_first_not_of() не алгоритмэто метод basic_string

угу  smile 


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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