Форум программистов, компьютерный форум CyberForum.ru

Вывод слов строки в порядке возрастания - C++

Восстановить пароль Регистрация
 
Alxa
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 3
26.09.2012, 11:08     Вывод слов строки в порядке возрастания #1
Здравствуйте. Нужно ввести с строку, где слова разделены пробелом. Затем расположить слова исходной строки в порядке возрастания.
Программа не работает
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream.h>
void sort(int j,char **S)
{
    char *t;
    int k,i;
    cin>>S;
    for(k=0;k<j;k++)
    {
       for(i=0;i<j-1;i++)
        {
            if(strlen(S[i])>strlen(S[i+1]))
         {
                t=S[i];
                S[i]=S[i+1];
                S[i+1]=t;
          }
       }
    }
cout<<t;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2012, 11:08     Вывод слов строки в порядке возрастания
Посмотрите здесь:

C++ Вывод элементов массива в порядке возрастания
C++ Упорядочить строки массива в порядке возрастания значения элемента
Страуструп. Упражнение. Ввод 3 чисел и последующий их вывод в порядке возрастания. C++
C++ Получить список имен файлов в порядке возрастания количества слов в них
Вывод на экран чётных слов строки исправить на вывод нечётных слов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
26.09.2012, 11:19     Вывод слов строки в порядке возрастания #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <set>
#include <sstream>
#include <string>
#include <iterator>
 
int main()
{
    std::string str;
    std::set<std::string> words;
    std::cout<<"Enter line:\n";
    std::getline(cin, str);
    std::stringstream ss(str);
    while(ss>>str)
        words.insert(str);
    std::cout<<"Words:\n";
    std::copy(words.begin(), words.end(), std::ostream_iterator<std::string>(cout," "));
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
26.09.2012, 11:39     Вывод слов строки в порядке возрастания #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1024
 
int compare(const void *p1, const void *p2)
{
    return strcmp(*(const char **)p1, *(const char **)p2);
}
 
int main()
{
   char s[N], *w[N], *word;
   long i, n = 0;
   fgets(s, N, stdin);
   for(word = strtok(s, " .,\n\t"); word; word = strtok(NULL, " .,\n\t"))
      w[n++] = word;
   qsort(w, n, sizeof(char *), compare);
   for(i = 0; i < n; i++)
      puts(w[i]);
   return 0;
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
26.09.2012, 11:57     Вывод слов строки в порядке возрастания #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
 
int main()
{
    char s[] = "f ghh b bn   fff  dddd", *p = 0, *arr[50] = {0}, **pend = arr, **parr = 0;
    for(p = strtok(s, " "), pend = arr; p; p = strtok(0, " "), ++pend)
    {
        for(parr = pend - 1; parr >= arr && strlen(*parr) > strlen(p); --parr)
        {
            parr[1] = *parr;
        }
        parr[1] = p;
    }
    for(parr = arr; *parr; ++parr)
    {
        std::cout << *parr << std::endl;
    }
    return 0;
}
Yandex
Объявления
26.09.2012, 11:57     Вывод слов строки в порядке возрастания
Ответ Создать тему
Опции темы

Текущее время: 03:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru