Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215

Сортировать любой текст по алфавиту, а у меня сортирует только строку

06.11.2016, 18:27. Показов 1936. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите!!! нужно что бы он сортировал весь текст, а у тут сортирует строку по строчно слова
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"ку
#include<iostream>
#include<fstream> 
#include <clocale>
using namespace std;
 
 
void sort(char**, int n);
 
int main()
{
    int n = 10;
    setlocale(LC_ALL, "Russian");
    ifstream ff("d:\\ddd\\input.txt"); // укажите полный путь к файлу
    if (ff)
    {
        char** s = new char*[n];
        for (int i = 0; i<n; i++)
            s[i] = new char[100];
 
        int j = 0;
        while (j<n && ff.getline(s[j], 100)) // каждый предмет в отдельной строке файла
            j++;
 
        cout << "До сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        sort(s, n);
 
        cout << endl << "После сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        for (int i = 0; i<n; i++)
            delete[] s[i];
        delete[] s;
    }
    else
        cout << "файл не открылся";
    system("pause");
    return 0;
}
void sort(char **s, int n)
{
    int k = 0;
    for (int i = 0; i<n - 1; i++)
        for (int j = i + 1; j<n; j++)
        {
            k = 0;
            if (s[i] != s[j]) {
                while (s[i][k] == s[j][k]) k++;
                if (s[i][k]>s[j][k])
                {
                    char *s2 = s[i];
                    s[i] = s[j];
                    s[j] = s2;
 
                }
            }
        }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2016, 18:27
Ответы с готовыми решениями:

Сортировать строку по алфавиту
всем привет,Помогите, написал программу чтобы сортировать строку по алфавиту. Как можно переделать, чтобы строка была вводимая #include...

Переписать из файла ф1 текст в файл ф2 и сортировать по алфавиту
переписать из файла ф1 текст в файл ф2 и сортировать по алфавиту#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; ...

Задан текст из 20 символов латинского алфавита. Сортировать по алфавиту. VBA
Просто выводит в label из textbox. помогите пожалуйста сортировать(пузырьком не получается). Нужно что бы из произвольного набора букв...

32
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 19:59  [ТС]
Студворк — интернет-сервис помощи студентам
DemolitionMan,
Цитата Сообщение от DemolitionMan Посмотреть сообщение
delimeter
это что?

Добавлено через 7 минут
заменил но выводит какие-то НННННН и текста для сортировки не видит

Добавлено через 3 минуты
DemolitionMan, заменил но выводит какие-то НННННН и текста для сортировки не видит
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.11.2016, 19:59
Цитата Сообщение от idris97 Посмотреть сообщение
заменил но выводит какие-то НННННН и текста для сортировки не видит
давай всё по новой. Код, файл, чё у тебя там... Скинь файл, который ты обрабатываешь. Не напиши его содержимое, а сам файл, маленький, естессно.
0
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 20:01  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include<iostream>
#include<fstream> 
#include <clocale>
using namespace std;
 
 
void sort(char**, int n);
 
int main()
{
    int n = 10;
    setlocale(LC_ALL, "Russian");
    ifstream ff("d:\\ddd\\input.txt"); // укажите полный путь к файлу
    if (ff)
    {
        char** s = new char*[n];
        for (int i = 0; i<n; i++)
            s[i] = new char[100];
 
        istream& getline(char* s, streamsize n, char delim);
 
 
        cout << "До сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        sort(s, n);
 
        cout << endl << "После сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        for (int i = 0; i<n; i++)
            delete[] s[i];
        delete[] s;
    }
    else
        cout << "файл не открылся";
    system("pause");
    return 0;
}
void sort(char **s, int n)
{
    int k = 0;
    for (int i = 0; i<n - 1; i++)
        for (int j = i + 1; j<n; j++)
        {
            k = 0;
            if (s[i] != s[j]) {
                while (s[i][k] == s[j][k]) k++;
                if (s[i][k]>s[j][k])
                {
                    char *s2 = s[i];
                    s[i] = s[j];
                    s[j] = s2;
 
                }
            }
        }
}
Вложения
Тип файла: txt input.txt (159 байт, 4 просмотров)
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.11.2016, 20:12
Цитата Сообщение от idris97 Посмотреть сообщение
istream& getline(char* s, streamsize n, char delim);
Это что прикол такой? Это ты что написал вообще?
0
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 20:14  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "stdafx.h"ку
#include<iostream>
#include<fstream> 
#include <clocale>
using namespace std;
 
 
void sort(char**, int n);
 
int main()
{
    int n = 10;
    setlocale(LC_ALL, "Russian");
    ifstream ff("d:\\ddd\\input.txt"); // укажите полный путь к файлу
    if (ff)
    {
        char** s = new char*[n];
        for (int i = 0; i<n; i++)
            s[i] = new char[100];
 
        int j = 0;
        while (j<n && ff.getline(s[j], 100)) // каждый предмет в отдельной строке файла
            j++;
 
        cout << "До сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        sort(s, n);
 
        cout << endl << "После сортировки:" << endl;
        for (int i = 0; i<n; i++)
            cout << s[i] << endl;
 
        for (int i = 0; i<n; i++)
            delete[] s[i];
        delete[] s;
    }
    else
        cout << "файл не открылся";
    system("pause");
    return 0;
}
void sort(char **s, int n)
{
    int k = 0;
    for (int i = 0; i<n - 1; i++)
        for (int j = i + 1; j<n; j++)
        {
            k = 0;
            if (s[i] != s[j]) {
                while (s[i][k] == s[j][k]) k++;
                if (s[i][k]>s[j][k])
                {
                    char *s2 = s[i];
                    s[i] = s[j];
                    s[j] = s2;
 
                }
            }
        }
}
я тут в интернете нашел и начал переделывать
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.11.2016, 20:16
Цитата Сообщение от idris97 Посмотреть сообщение
я тут в интернете нашел и начал переделывать
а понял, ты вообще ничё не шаришь в программировании, тебе дали задание и сказали сделать, так?
0
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 20:22  [ТС]
я шарю но у меня плохо получается, изучать язык с нуля времени нету и не знаю с чего начать изучение программирования, и у нас тут дают задания и говорят сами изучайте
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.11.2016, 20:26
Цитата Сообщение от idris97 Посмотреть сообщение
я шарю
ладно, тогда повторю, раз ты шаришь: это ты что написал:

C++
1
istream& getline(char* s, streamsize n, char delim);
(Вот в этом сообщении
Сортировать любой текст по алфавиту, а у меня сортирует только строку)
0
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 20:29  [ТС]
DemolitionMan, это он же скинул

Добавлено через 24 секунды
нет это скинул kravam, DemolitionMan, это он же скинул
0
быдлокодер
 Аватар для kravam
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,705
06.11.2016, 20:35
Лучший ответ Сообщение было отмечено idris97 как решение

Решение

Цитата Сообщение от idris97 Посмотреть сообщение
это он же скинул
DemolitionMan сказал, что нужно вызывать эту функцию с последним параметром ' ' (пробел то есть). Функцию вызывать над так:

C++
1
ff.getline(s[i], 19, ' ');
А ты написал объявление функции, да ещё в теле другой функции. Бред, короче. Пиши вместо этого:
C++
1
2
3
        int j = 0;
        while (j<n && ff.getline(s[j], 100))
            j++;
Вот это:
C++
1
2
3
        int j = 0;
        while (j<n && ff.getline(s[j], 100 , ' '))
            j++;
Тяжело было подумать, да?
1
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
06.11.2016, 21:29  [ТС]
О БОЛЬШОЕ СПАСИБО ВАМ
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
07.11.2016, 05:19
Лучший ответ Сообщение было отмечено idris97 как решение

Решение

Отсортировал и немножко в корне переделал программу:
Вложения
Тип файла: zip StringSorting.zip (64.9 Кб, 2 просмотров)
1
0 / 0 / 1
Регистрация: 06.12.2015
Сообщений: 215
13.11.2016, 13:38  [ТС]
спасибо

Добавлено через 11 секунд
DemolitionMan, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.11.2016, 13:38

Написать программу которая сортирует по алфавиту слова
С помощью string

Распечатайте все отчества по алфавиту, а также текст, содержащий строки, состоящий только из фамилий и имён
Пусть текст представляет собой последовательность строк. На каждой строке находится имя, фамилия и отчество. Распечатайте все отчества по...

Ввести строку, состоящую только из букв, и определить, являются ли буквы в строке упорядоченными по алфавиту
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; int main() { char str; int i; puts(&quot;Vvedite stroku&quot;); ...

Ввести строку, состоящую только из букв, и определить, являются ли буквы в строке упорядоченными по алфавиту
Ввести строку, состоящую только из букв, и определить, являются ли буквы в строке упорядоченными по алфавиту. Добавлено через 42...

Как сделать чтоб rtf-файл открывался с рисунками, у меня только текст открывается
Как сделать чтоб rtf-файл открывался с рисунками, у меня только текст открывается... Я использовал компонент richedit... (как на рисунке)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru