Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.12.2009
Сообщений: 13
1

Работа с указателями в тестовом файле

26.12.2009, 19:42. Показов 576. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
изначально была задача:отсортировать файл(текстовый) по значениям Nго столбца.
Я считываю строки и делаю массив указателей b[] на эти строки.
также считываю подстроки(N-й столбец) и создаю массив указателей c[]
теперь вопрос:как отсортировать?принцип сравнения -лексикографический.
пытался применить функцию strcmp,но она только для строк.с указателями у меня она не работала.
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 1000
int main()
{
    char *b[max];
    char s[max],a[max],*c[max];
    int N,k,i,j,p,q;
    FILE *f1;
    printf("Vvedite nomer stolbza dla sortirovki\n");
    scanf("%d",&N);
    f1=fopen("E:\\proga\\прога3\\ish.txt","r+");
    if (f1==NULL)
    {printf("Oshibka otkritia faila");
     exit(-1);
    }
j=0;
while (fgets(s,max, f1)!=NULL)
{i=0;
 k=1;
 i=0;
    while (s[i]!='\0' )
    {if(N==1)
       {
        while(s[i]!=' ')
       {a[i]=s[i];
       i++;}
       c[j]=a;
        printf("%s\n",c[j]);
        break;
         }
     if(s[i]==' ')
       {k=k+1;}
     while(s[i]==' ')
       {i++;}
     if (k==N)
     {p=0;
      while (s[i]!=' ')
        {a[p]=s[i];
         i++;
         p++;
        }
      c[j]=a;
      printf("%s\n",c[j]);
      break;
     }
    i++;
    }
b[j]=s;
j++;
}
fclose(f1);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.12.2009, 19:42
Ответы с готовыми решениями:

Табуляция в тестовом файле
Добрый день, нужна помощь. Мне надо в тестовом файле сделать табуляцию, дабы имитировать столбцы но...

Сортировка в тестовом файле
Требуется отсортировать числа в текстовом файле. 1)Как я понял для этого нам нужны FileReader...

Дополнение строк в тестовом файле
Всем привет. Работаю над курсовым проектом, который строит таблицу из символов псевдографики....

Подсчитать количество чисел в тестовом файле
Здравствуйте. (файл для теста прилагается) Делал в виндоус форм, используя для поиска регулярные...

1
373 / 287 / 97
Регистрация: 17.12.2009
Сообщений: 567
26.12.2009, 21:43 2
напеши функцию:
cmp(string,string)
которая будет возврщать 0,1 в зависимости от того какая строка (слово) по алфавиту превосходит.
0 - первый операнд, 1 - второй.
например
C++
1
2
3
4
5
6
7
8
9
10
11
bool cmp(string s1,string s2)
{
    int i=0;
    int n=min(s1,s2); // min - длина кротчайшей из строк
    while ((s1[i]==s2[i])&&(i<=n))
    {
          i++;
     }
     //тут еще несколоко условий надо
     return (s1[i] < s2[i]);
}
потом у тебя например массив: char *cptr[n];
сортируешь:
C++
1
2
3
4
5
6
7
8
for (int i=0;i<(n-1);i++)
     if (min(*cptr[i],*cptr[i+1])  //если следующее слово больше текущего.
     {
          char *p; //меняешь указатели местами}
          p=cptr[i];
          cptr[i]=cptr[i+1];
          cptr[i+1]=p;
      }
0
26.12.2009, 21:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2009, 21:43
Помогаю со студенческими работами здесь

Осуществить поиск текста в тестовом файле и вернуть номер строки в label
Доброго дня! Как можно осуществить поиск текста в тестовом файле и вернуть номер строки в label в...

Подсчитать количество чисел в тестовом файле и записать это значение в файл
Задание. 1. Подсчитать количество чисел в тестовом файле и записать это значение в файл....

Работа с указателями
Написать программу, в которой выполнить следующие действия: 1) Описать указатели на все известные...

Работа с указателями
Написать программу работы с указателями. LONG *p1; ULONG x = 5; LONG y = -1; LONG *p2 = p1 +...

Работа с указателями
Подскажите пожалуйста, зачем написано * Rad_to_deg void show_polar (const polar * pda) { ...

работа с указателями
Помогите решить задачу в С++ (я в этом начиющий): 1)Из положительных значений двух целочисленных...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru