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

Поиск:

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


Опытный
**


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

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



Нужно написать программу, которая бы отсортировывала бы слова в строке, Например:

mama ne mila ramu

Результат:

mama mila ne ramu


Стандартным способом почему то не получается!
Код

#include<iostream>
#include<string>
#include<algorithm>
using namespace std; 
int main()
{
    char s[255];
    cout<<"Vvedite stroku: ";
    gets(s);
    cout<<s;
    sort(s, s+255);
    cout<<s;
    cout<<endl;
    
    system("pause");
    return 0;
}

PM MAIL   Вверх
borisbn
Дата 16.5.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Ты отсортировал СИМВОЛЫ в строке, а не слова. Для начала нужно получить список (вектор) слов из введённой строки, а затем отсортировать этот список


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
stat007
Дата 16.5.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



borisbn, а как это сделать?
PM MAIL   Вверх
djamshud
Дата 16.5.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

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



Вытащить отдельное слово помогут: strchr, strstr, strsep, strtok, strpbrk - выбирайте любую. Я бы воспользовался последней.


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
toxx
Дата 16.5.2010, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



borisbn
да тут както даже не символы наверно отсортированы в строке?если честно логики даже не понял в сортировке..
stat007
вы по каким критериям собрались слова сортировать?(по кол-ву букв в слове, по ASCII коду букв)
Код

как это сделать?
 
Считываешь слова до пробела, потом в массив слов это слово.Далее по какому либо критерию сортируешь слова...
PM MAIL   Вверх
ИванМ
Дата 16.5.2010, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <sstream>

int main()
{
    using namespace std;

    string s;    
    list<string> words;
    cout<<"Vvedite stroku: ";
    getline(cin, s);
    stringstream ss(s), ss2;

    copy(istream_iterator<string>(ss), istream_iterator<string>(), back_inserter(words));
    words.sort();
    copy(words.begin(), words.end(), ostream_iterator<string>(ss2, " "));
    string s2=ss2.str();
    cout<<"Poluchennaya stroka: "<<s2<<endl;
    system("pause");
}


Это сообщение отредактировал(а) ИванМ - 16.5.2010, 22:23
PM MAIL   Вверх
toxx
Дата 16.5.2010, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ИванМ
Вы сортируете по количеству букв да?
я просто не могу понять как хочет автор отсортировать это...
Цитата

mama ne mila ramu

Результат:

mama mila ne ramu


PM MAIL   Вверх
ИванМ
Дата 16.5.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



toxx, сортирую по оператору < для string.
PM MAIL   Вверх
toxx
Дата 16.5.2010, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ИванМ
Цитата

сортирую по оператору < для string

а он, как я понял, сортирует по кол-ву букв в слове...
http://codepad.org/4hA9kyAu
PM MAIL   Вверх
djamshud
Дата 16.5.2010, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


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

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



toxx, и по алфавиту (коду символа).


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
ИванМ
Дата 16.5.2010, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



toxx, нет, проверяются по очереди все буквы слева направо. Если текущая буква первой строки меньше текущей буквы второй строки, то возвращается true. Если больше букв в первой строке нет, а во второй есть, но тоже возвращается true.

Это сообщение отредактировал(а) ИванМ - 16.5.2010, 22:58
PM MAIL   Вверх
toxx
Дата 16.5.2010, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



djamshud,ИванМ
ага понял,спасибо.
PM MAIL   Вверх
Сишник
Дата 17.5.2010, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Люди а как сделать почти тоже самое только чтобы оно сортировало слова по коду ANCII на языке Си?
что-то типо 
Bdf a f b 
отсортировало 
a b f Bdf

пробовал делать strtokом - ничего не получилось((
PM MAIL   Вверх
borisbn
Дата 17.5.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Сишник, strtok не сортирует, а помогает разделить строку на слова. 
см.strtok
и см. std::sort - функция сортировки


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ИванМ
Дата 17.5.2010, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Сишник, по коду ANSI так: a b f Bdf, отсортировать не получится, потому что у заглавных букв значение кода меньше.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

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

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

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

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


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

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


 




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


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

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