Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <stdbool.h>
- char a[10000][20][110];
- char buff[20 * 100 + 50];
- bool put (int sza, int field, int const* begin, int end) {
- int len = 0;
- bool f = false;
- while (*begin != end) {
- a[sza][field][len++] = buff[*begin];
- if (buff[*begin] == ';') {
- f = true;
- break;
- }
- ++begin;
- }
- a[sza][field][len] = '\0';
- return f;
- }
- int n;
- int cmp (const char* a, const char* b, int i, int j) {
- int sza = strlen (a);
- int szb = strlen (b);
- while (i != sza && j != szb && a[i] != '"' && b[j] != '"') {
- }
- }
- int comp (const void* __a, const void* __b) {
- const char** _a = (char**)__a;
- const char ** _b = (char**)__b;
- const char* a = _a[n];
- const char* b = _b[n];
- int i = 0;
- for (; a[i] != ' '; ++i);
- int j = 0;
- for (; b[j] != ' '; ++j);
- if (a[i] == '"') {
- return cmp (a, b, i, j);
- } else {
- }
- }
- int main(void) {
- FILE* in = fopen ("input.txt", "r");
- FILE* out = fopen ("output.txt", "w");
- fscanf (in, "%d", &n);
- int sza = 0;
- while (1) {
- fscanf(in, "%[^\n]%*s", buff);
- if (feof(in)) break;
- int field = 0;
- int* begin = 0;
- int end = (int)strlen (buff);
- while (put (sza, field, begin, end)) ++field;
- ++sza;
- free (begin);
- }
- qsort (a, sza, sizeof (char), comp);
- fclose (in);
- fclose (out);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement