Dobry wieczór,
#include <stdio.h>
#include <string.h>
int ffname(char *line)
{
int i=1,j=0;
char *sign;
// char name[1024];
char *name;
strtok(line,"(");
sign = strchr(line,' ');
if(sign[i] == '*')
{
i++;
}
name = (char*) malloc(i * sizeof(char));
while(sign[i] != '\0')
{
name[j]=sign[i];
i++;
j++;
}
name[j] ='\0';
printf("Function name is: %s\n", name);
return name;
}
int main(int argc, char **argv)
{
int j;
char* inputname;
char* outputname;
for(j=0; j<argc ; j++)
{
if(strcmp(argv[j],"-i") == 0)
{
inputname=argv[j+1];
}
else if(strcmp(argv[j],"-o") == 0)
{
outputname=argv[j+1];
}
}
if(argc == 5)
{
int i,count =0;
char c[1024],b[1024];
FILE *in;
FILE *out;
in = fopen(inputname,"r");
out = fopen(outputname, "wt");
while(fgets(c,sizeof(c),in))
{
for(i=0; i<strlen(c); i++)
{
while( c[i] =='\t' || c[i] == ' ')
{
i++;
}
if( c[i] == '{')
{
count++;
if(count == 1)
{
fputs(ffname(b),out);
}
break;
}
else if( c[i] == '}')
{
count--;
break;
}
}
strcpy(b,c);
}
}
else
{
printf("error");
}
return 0;
}
Ogółem program ma rozpoznawać(z plików .c) nazwy funkcji, zmiennych z ich typami itp, jak na razie udało mi się coś wykombinować z funkcjami. Nie wiem natomiast, jak dynamicznie alokować pamięć, oczywiście nie znam rozmiaru tablicy jakiej będę potrzebować do każdego pliku i tu się zatrzymałem. Próbowałem napisać coś w funkcji ffname ( nie wiem czy jest to poprawne), a pozostają jeszcze dwie tablice :/