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

Сортировка string по алфавиту в структуре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ При введении шаблона игнорируются ошибки http://www.cyberforum.ru/cpp-beginners/thread1211431.html
При написании класса, если не превращать его в шаблонный класс, MSVS находит все ошибки синтаксиса внутри класса и подчеркивает их, но если дописать template <class Type>, то всё в точности наоборот - можно допустить любую ошибку и программа ее не увидит. template <class Type> // ЕСЛИ УБРАТЬ СТРОКУ - ВСЁ РАБОТАЕТ class QueueTp { private: struct Node {Type item; struct Node* next;};...
C++ Метод "Золотого сечения" Нужна Ваша помощь по написанию кода на vs 2010, метод золотого сечения. Условие = , e=0,01 , y=x^2-x+1 и если можно скриншот результатов консоли всех итераций, и количество итераций http://www.cyberforum.ru/cpp-beginners/thread1211421.html
C++ Двусвязный линейный список со словами.
Створити двозв*язний лінійний список, елементами якого є слова тексту. Вивести слова, що знаходяться на парних позиціях під час перегляду списку у напрямку від голови до хвоста та слова розташовані на непарних позиціях під час перегляду списку у зворотньому напрямку Язык форума русский. Переведите! Добавлено через 1 час 11 минут Создать двусвязным линейный список, элементами которого...
C++ Ввести n слов и упорядочить их так, чтобы получилась цепочка
Увести n слів, що є послідовністю символів без пробілів. слова переупорядкувати так, щоб вийшов "ланцюжок". тобто длякожного слова Аj його перша буква повинна збігатись з останньою буквою попереднього слова, а остання буква Аj з першою буквою подальшого слова , відповідно остання буква останнього слова повинна збігатися з пешою буквою першого слова . У ланцюжок включити всі n cлів без повторень....
C++ Динамичный массив в классе http://www.cyberforum.ru/cpp-beginners/thread1211397.html
создайте АТД class, в области данных которого содержится динамический массив чисел типа float и целое число (минимального элемента массива). Среди методов создайте конструкторы и деструкторы (если это необходимо)
C++ При обходе по очереди вершин многоугольника выяснить остался ли наблюдатель слева или справа от него Предел сада имеет форму многоугольника с n вершинами, координаты которых (x1,y1),(x2,y2)..)(Xn,Yn) пользователь вводит с клавиатуры. Садовник решил обойти сад вдоль границы в порядке возрастания номеров вершин многоугольника. Выяснить, остался сад при этом слева от садовника или справа. подробнее

Показать сообщение отдельно
Kuzia-22
7 / 6 / 2
Регистрация: 21.11.2013
Сообщений: 46
18.06.2014, 16:01     Сортировка string по алфавиту в структуре
Итак, задача считать информацию из файла, в формате string\t char\t int\n и отсортировать в алфавитном порядке по первому значению в строке (т.е. по string);

На вход получаю вот эти данные:
Код
Alex M 89
Calex W 99
Balex M 90
Lalex M 87
Ealex W 91
На выходе имею некорректно отсортированное:
Код
Lalex	M	87
Alex	M	89
Balex	M	90
Calex	W	99
Ealex	W	91
Код:

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
#include<stdio.h>
#include<conio.h>
#include<string.h>
 
struct SPRAV
{           
char fio [10];
char pol[2];
int god;};
 
struct SPRAV ludi[5];
struct SPRAV buf;
FILE *fp,*fp1;
int minG;
int i,j;
main()
{
 fp=fopen("input.txt","r");
 fp1=fopen("output.txt","w");
 for (i=0; i<5; i++)
 {
    fscanf(fp,"%s\t%s\t%d\n",ludi[i].fio,ludi[i].pol,&ludi[i].god);
 }
 fclose(fp);
 for (i=0;i<5;i++)
    {
     printf("%s\t",ludi[i].fio);
     printf("%s\t",ludi[i].pol);
     printf("%d\n",ludi[i].god);
    }
 getch();
 
 for (i=0;i<4;i++)
     {
 for (j=i+1;j<5;j++)
 if (strcmp(ludi[i].fio, ludi[j].fio))
{
         buf=ludi[i];
         ludi[i]=ludi[minG];
         ludi[minG]=buf;
        }
     } 
 printf("\nOUTPUT.TXT:\n");
 for (i=0; i<5; i++)
            {
             fprintf (fp1,"%s\t%s\t%d\n",ludi[i].fio,ludi[i].pol,ludi[i].god);
             printf("%s\t%d\n",ludi[i].fio,ludi[i].god);
            }
 fclose (fp1);
 getch();
 return 0;
}


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