研究了下编译原理的第一课, 对于现在的我,还是有点小烧脑的. 主要是我在括号递归用的指针位置上有些模糊.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double analyze_1(char * str);
void delspace(const char * str)
{
char * p1 = str;
char * p2 = str;
while ((*p1 = *(p2++)) != '\0')
{
if (*p1 != ' ')
p1++;
}
}
int isnum(char ch)
{
return ch >= '0' && ch <= '9' ? 1 : 0;
}
char * kuohao(char *str, int *pindex)
{
char *pstr = NULL;
int num = 0;
int leftnum = *pindex;
do
{
char ch = *(str + (*pindex));
if (ch == ')')
{
if (num == 0)
{
(*pindex)++;
pstr = malloc(sizeof(char) * (*pindex - leftnum));
strncpy(pstr, str + leftnum, *pindex - leftnum -1);
return p