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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mtbiker
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 3
#1

Сортировка по строкам - C++

02.12.2010, 11:35. Просмотров 526. Ответов 4
Метки нет (Все метки)

Есть тхт файл со строчками, по типу:

affghfhj
fjfrddrh
dhrhyhyjh
dgdgwwdb
nvnvhjrf
dggrtht
affhhghj

Задача отсортировать строки в порядке убывания по первым 3 символам.
Т.е. если aff встречается в данном случае больше всех, то он отображается первым

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main( )
{
        char comb[3];
        char compare[4];
        FILE*pFile;
           char sentence [256];
           pFile = fopen ("C://mylog.txt","r");
           {
           while (feof(pFile)==0)
           {
            fgets (sentence,255,pFile);
            strncpy(compare, sentence, 3);
            compare[4]='\0';
            printf("%s", compare);
            if (StrComp(comb, compare)==0)
            {
            }
            }
            }
           fclose (pFile);
           getch();
        return 0;
}
Дальше я так понимаю надо создать массив двумерный
В первое измерение - уникальные 3х знаковые строки
Во второе измерение - кол-во повторений уникальной строчки
Только как это сделать не пойму

Добавлено через 12 часов 36 минут
Подскажите кто нибудь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2010, 11:35     Сортировка по строкам
Посмотрите здесь:

Сортировка двумерного массива по строкам - C++
Попытался отсортировать двумерный массив по строкам, но ничего не получилось. Вот код моей попытки так сказать: for (i=n;i>=0;i--){ ...

Сортировка Шелла по строкам нечетных элементов - C++
Здравствуйте, помогите пожалуйста с сортировкой Шелла с подсчетом сравнений и перестановок. Сделал пузырек Шелл , что-то не получаетсяint...

по строкам - C++
Пусть задан текст, заканчивающий точкой. Текст состоит из слов, разделенных пробелами. Слово последов. Русских cлов(как строчных, так и...

Программка по строкам - C++
Начал изучать с++ ... возник вопрос по строкам: к примеру, в предложении переставить символы с заду на перед? Вообщем, хелп, товарищи!)

Вопрос по строкам - C++
Доброго всем дня!!! Рябята, подскажите, признак окончания строки - это константа '\0'? Если да, то как мы можем считать строку из файла в...

Задача по строкам в С - C++
Такое дело.Вот задача на С: Найти самое длинное общее слово для всех предложений текста. (Предложения отделяются точками, между словами 1...

Комментарии к строкам - C++
Кому не сложно) Напишите комментарий к строкам) Эта программа переводит из одной системы счисления в другую! #include <iostream> ...

Программа по строкам - C++
Помогите пожалуйста с следующей задачей, уже мучаюсь неделю ничего не получается 1) Написать программу, которая считывает английский...

подскажите по строкам в С++ - C++
задание вот такое: Даны две строки, состоящие из слов, разделѐнных одним или несколькими пробелами. Из слов этих строк сформировать новую...

Комментарии к строкам - C++
#include <iostream.h> #include <math.h> #include<conio.h> using namespace std; int main() {clrscr(); int a, b; int*...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
02.12.2010, 12:55     Сортировка по строкам #2
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
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::ifstream ifs("1.txt");
    std::vector<std::string> VecStr;
    if(!ifs)
    {
        std::cerr << "File not find" << std::endl;
        return 1;
    }
    else
    {
        while(!ifs.eof())
        {
            std::string temp;
            ifs >> temp;
            VecStr.push_back(temp);
        }
    }
    std::sort(VecStr.begin(), VecStr.end());
    std::copy(VecStr.begin(), VecStr.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    return 0;
}
mtbiker
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 3
02.12.2010, 20:08  [ТС]     Сортировка по строкам #3
asics это через векторы как я понял, спасибо попробую это внедрить !



Вот мне знакомый написал кусок, правда не работает, но компилиться
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
int main( )
{
        int i = 1;
        char* *uniquestring = new char*[i];
        int* numberofstrings = new int[i];
        numberofstrings[0]=0;
 
        pFile = fopen ("C://mylog.txt","r");
      {
        while (feof(pFile)==0)
           {
            fgets (sentence,255,pFile);
            strncpy(compare, sentence, 3);
            compare[4]='\0';
 
          
             if (i==1) uniquestring[i-1] = compare;
             else{
                for (int j = 0 ; j<i;j++){
                        if (*uniquestring[j]==*compare) numberofstrings[j]++;
                        else {
 
                        char* *unstr = new char*[i];
                        int* numstr = new int[i];
 
                        for (int r = 0;r<i;r++){
                                unstr[r] = uniquestring[r];
                                numstr[r] = numberofstrings[r];
                        };
                        i++;
                        uniquestring = new char*[i];
                        numberofstrings = new int[i];
                        for (int r = 0;r<i-1;r++){
                                uniquestring[r] = unstr[r];
                                numberofstrings[r] = numstr[r];
                        };
 
                        numberofstrings[i-1] = 0;
                        delete[] unstr;
                        delete[] numstr;
 
                        uniquestring[i-1]=compare;
                        };
                };
                  }
            for (int g = 0; g<i;g++){
                printf("%s ",uniquestring[g]);
                printf("%s ", numberofstrings[g]);
            };
        getch();
        return 0;
}
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
02.12.2010, 20:10     Сортировка по строкам #4
mtbiker, Если вам нужно на С++, то мой код вполне удовлетворяет это условие.
mtbiker
0 / 0 / 0
Регистрация: 01.12.2010
Сообщений: 3
02.12.2010, 20:56  [ТС]     Сортировка по строкам #5
asics

зайди плз в Скайп, я хотел спросить тебя.
Или можно в контакте )
Yandex
Объявления
02.12.2010, 20:56     Сортировка по строкам
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru