int db_char_malloc(int x, int y)
{
int i;
i = 0;
char **db_char
= (char **)malloc(y
* sizeof(char *)); while (i<y)
{
db_char
[i
] = (char *)malloc(x
* sizeof(char)); i++;
}
return (db_char);
}
int db_int_malloc(int y)
{
int *db_int
= (int *)malloc(y
* sizeof(int)); return (db_int);
}
int count_elems(char *str)
{
int count;
int i;
count = 0;
i = 0;
while(str[i] != '\0')
{
if (str[i] <= '9' && str[i] >= '0')
{
while (str[i] <= '9' && str[i] >= '0')
i++;
count++;
}
else if (str[i] == ' ')
i++;
else
{
count++;
i++;
}
}
return (count);
}
#include <unistd.h>
char main()
{
int i;
int j;
int count_elem;
int i_v_str;
char str[] = "1 + 2 * ((34 - 4 * 3))";
i = 0;
j = 0;
i_v_str = 0;
count_elem = count_elems(str);
char **db_char = db_char_malloc(10, count_elem);
int *db_int = db_int_malloc(count_elem);
while (str[i_v_str] != '\0')
{
i = 0;
if (str[i_v_str] <= '9' && str[i_v_str] >= '0')
{
while (str[i_v_str] <= '9' && str[i_v_str] >= '0')
{
db_char[j][i] = str[i_v_str];
i++;
i_v_str++;
}
db_char[j][i] = '\0';
j++;
}
else if (str[i_v_str] == ' ')
i_v_str++;
else
{
db_char[j][i] = str[i_v_str];
i++;
db_char[j][i] = '\0';
i_v_str++;
j++;
}
}
j = 0;
while (j < count_elems)
{
db_int
[j
] = atoi(db_char
[j
]);
}
return(db_char);
}
aW50IGRiX2NoYXJfbWFsbG9jKGludCB4LCBpbnQgeSkgCnsgCiAgICBpbnQgaTsKICAgIAogICAgaSA9IDA7CiAgICBjaGFyICoqZGJfY2hhciA9IChjaGFyICoqKW1hbGxvYyh5ICogc2l6ZW9mKGNoYXIgKikpOyAKICAgIHdoaWxlIChpPHkpCiAgICB7CiAgICAgIGRiX2NoYXJbaV0gPSAoY2hhciAqKW1hbGxvYyh4ICogc2l6ZW9mKGNoYXIpKTsgCiAgICAgIGkrKzsKICAgIH0KICAgcmV0dXJuIChkYl9jaGFyKTsKfSAKCmludCBkYl9pbnRfbWFsbG9jKGludCB5KSAKeyAKICBpbnQgKmRiX2ludCA9IChpbnQgKiltYWxsb2MoeSAqIHNpemVvZihpbnQpKTsgICAKICByZXR1cm4gKGRiX2ludCk7IAp9CgppbnQgY291bnRfZWxlbXMoY2hhciAqc3RyKQp7CiAgICAgaW50IGNvdW50OwogICAgaW50IGk7CgogICAgY291bnQgPSAwOwogICAgaSA9IDA7CiAgICB3aGlsZShzdHJbaV0gIT0gJ1wwJykKICAgIHsKICAgICAgICBpZiAoc3RyW2ldIDw9ICc5JyAmJiBzdHJbaV0gPj0gJzAnKQogICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKHN0cltpXSA8PSAnOScgJiYgc3RyW2ldID49ICcwJykKICAgICAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgY291bnQrKzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoc3RyW2ldID09ICcgJykKICAgICAgICAgICAgaSsrOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGNvdW50Kys7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gKGNvdW50KTsKfQoKI2luY2x1ZGUgPHVuaXN0ZC5oPgoKCmNoYXIgbWFpbigpCnsKICAgIGludCBpOwogICAgaW50IGo7CiAgICBpbnQgY291bnRfZWxlbTsKICAgIGludCBpX3Zfc3RyOwogICAgY2hhciBzdHJbXSA9ICIxICsgMiAqICgoMzQgLSA0ICogMykpIjsKICAgIGkgPSAwOwogICAgaiA9IDA7CiAgICBpX3Zfc3RyID0gMDsKICAgIGNvdW50X2VsZW0gPSBjb3VudF9lbGVtcyhzdHIpOwogICAgY2hhciAqKmRiX2NoYXIgPSBkYl9jaGFyX21hbGxvYygxMCwgY291bnRfZWxlbSk7CiAgICBpbnQgKmRiX2ludCA9IGRiX2ludF9tYWxsb2MoY291bnRfZWxlbSk7CiAgICB3aGlsZSAoc3RyW2lfdl9zdHJdICE9ICdcMCcpCiAgICB7CiAgICAgICAgaSA9IDA7CiAgICAgICAgaWYgKHN0cltpX3Zfc3RyXSA8PSAnOScgJiYgc3RyW2lfdl9zdHJdID49ICcwJykKICAgICAgICB7ICAgICAgICAgICAgCiAgICAgICAgICAgIHdoaWxlIChzdHJbaV92X3N0cl0gPD0gJzknICYmIHN0cltpX3Zfc3RyXSA+PSAnMCcpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRiX2NoYXJbal1baV0gPSBzdHJbaV92X3N0cl07CiAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICAgICBpX3Zfc3RyKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZGJfY2hhcltqXVtpXSA9ICdcMCc7CiAgICAgICAgICAgIGorKzsKICAgICAgICB9CiAgICAgICAgZWxzZSBpZiAoc3RyW2lfdl9zdHJdID09ICcgJykKICAgICAgICAgICAgaV92X3N0cisrOwogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIGRiX2NoYXJbal1baV0gPSBzdHJbaV92X3N0cl07CiAgICAgICAgICAgIGkrKzsKICAgICAgICAgICAgZGJfY2hhcltqXVtpXSA9ICdcMCc7CiAgICAgICAgICAgIGlfdl9zdHIrKzsKICAgICAgICAgICAgaisrOwogICAgICAgIH0KICAgIH0KICAgIGogPSAwOwogICAgd2hpbGUgKGogPCBjb3VudF9lbGVtcykKICAgIHsKICAgICAgZGJfaW50W2pdID0gYXRvaShkYl9jaGFyW2pdKTsKICAgICAKICAgIH0KICAgIAogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIHJldHVybihkYl9jaGFyKTsKfQ==