Считывание из заголовочного файла названий всех функций - C (СИ)
Формулировка задачи:
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- void main(void)
- {FILE *fi1, *fi2, *fo;
- char FileZ[20],FileR[20],s[100],*list[25],*chr;
- int i,j,sum,a,b,c;
- j=0;
- printf("vvedite imay zaglovochnogo faila : ");
- scanf("%s",FileZ);
- fi1 = fopen(FileZ, "r+");
- if (!fi1) printf("Oshibka otkritiya faila1\n");
- else
- { while (!feof(fi1))//poka ne konets faila
- i=sum=0;
- fgets(s,100,fi1);
- { while (s[i]!=NULL)//poka ne konets stroki
- if(s[i]=='(') sum++;//schetchik ckobocek
- if(s[i]==')') sum--;//schetchik ckobocek
- if(s[i]==';'&& sum==0)// yslovie obiavlenia functsii
- {chr=strchr (s,'(');
- a=chr-s;// pozitsia pervoi otkrivaiyshiisa skoboki
- chr=strrchr (s,' ');
- b= chr-s;// pozitsia pervogo probela do skobki
- c=(b+1)-(a-1);// dlina nazvania functsii
- //list[j]=... //zapis v massiv stroki iz s c pozitsii(b+1) do (a-1)-nazvanie funktsii
- j++;
- }
- i++;
- }
- }
- }
- struct Item //opisanie struktur
- {
- struct Item *next;
- struct Item *prev;
- };
- struct List
- {
- struct Item *head;
- struct Item *tail;
- };
- void Add(struct List *l,struct Item *m); //prototipy
- void Clear(struct List *l);
- int Count(struct List*l);
- void Delete(struct List*l,int n);
- int GetIndex(struct List*l,struct Item*m);
- struct Item*GetItem(struct List*l,int n);
- void Insert(struct List*l,struct Item*m,int n);
- void Print(struct List*l);
- void Printt(struct Item*m);
- struct Item*Remove(struct List*p,int);
Решение задачи: «Считывание из заголовочного файла названий всех функций»
- 1 chr=strrchr (s2,'*');//ishem zvezdochky
Объяснение кода листинга программы
2 if (chr) { // если есть звездочка
3 s1 = strdup (s2); // то скопировать строку s2 в s1
4 *chr = '\0'; // заменить звездочку на ноль
5 } else { // если звездочки нет
6 s1 = strdup (s2); // то скопировать строку s2 в s1
7 }
8 //printf (%s\n
,s1); // вывести на экран скопированную строку
9 //free (s1); // освободить память
10 //exit (0); // завершить программу
11 //s1=NULL; // очистить указатель
12 //s2=NULL; // очистить указатель
13 //return 0; // вернуть ноль
14 //s1=s2; // присвоить s1 значение s2
15 //s2=NULL; // очистить указатель
16 //printf (%s\n
,s1); // вывести на экран скопированную строку
17 //free (s1); // освободить память
18 //exit (0); // завершить программу
19 //s1=NULL; // очистить указатель
20 //return 0; // вернуть ноль
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д