#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
void help( void );
void chushi( void );
void test( void );
void bc( void );
void main()
{
// printf( "%c\n", ch );
chushi();
//help( ch );
}
void help(void)
{
printf( " list help:\n");
}
void chushi( )
{
char *input;
while(1)
{
printf( "terminal:" );
input = (char*)malloc(sizeof(char));
gets( input);
// getchar();
if( 0 ==(strcmp( "help", input )) )
help();
if( 0 ==(strcmp( "test", input )) )
test();
if( 0 ==(strcmp( "bc", input )) )
bc();
}
}
void test( void )
{
char *m;
while(1)
{
printf( "test:" );
m = (char*)malloc(sizeof(char));
gets( m);
// getchar();
if( 0 ==(strcmp( "help",m )) )
help();
if( 0 ==(strcmp( "q",m)) )
break;
}
}
void bc( void )
{
while(1)
{
char*inputs;
char*str_left;
char*str_right;
int i;
int flag =0;
int leftend;
int rightend;
int leftn =0;
int rightn =0;
int leftint;
int rightint;
int length =1;
int symbol;
inputs = (char *)malloc( 100* sizeof( char) );
if( inputs == NULL) printf("init inputs error\n");
str_left = ( char *)malloc( 10* sizeof( char) );
if( inputs == NULL) printf("init inputs error\n");
str_right = ( char *)malloc( 10* sizeof( char ) );
if( inputs == NULL) printf("init inputs error\n");
printf("bc:");
gets( inputs);
//puts( inputs );
for( i = 0; inputs[i] != 0; i++)
{
if( inputs[i]== '+')
{
flag= i;
symbol= 1;
}
if(inputs[i] == '-')
{
flag= i;
symbol= 2;
}
if(inputs[i] == '*')
{
flag= i;
symbol= 3;
}
if(inputs[i] == '/')
{
flag= i;
symbol= 4;
}
if(inputs[i] == 'q')
{
//flag= i;
symbol= 0;
}
if(inputs[i] == 'h')
{
//flag= i;
symbol= 99;
}
if( i >100 )
printf("inputerror!!!");
length++;
//printf("%d\n",flag);
}
if( symbol == 0 )break;
//inputs = (char *)malloc(length * sizeof( char) );
for( i = 0; inputs[i] != 0;i++ )
{
if( i <flag && isdigit( inputs[i]) )
{
leftend= i;
leftn++;
//printf("%d%d\n",leftend, leftn);
str_left[leftn- 1] = inputs[i];
}
if( i >flag && isdigit( inputs[i]) )
{
rightend= i;
rightn++;
//printf("%d%d\n",rightend, rightn);
str_right[rightn- 1] = inputs[i];
}
}
leftint =atoi(str_left);
//printf("%d\n",leftint);
rightint =atoi(str_right);
//printf("%d\n",rightint);
switch( symbol )
{
case 1:printf("bc:%d\n", ( leftint + rightint ));break;
case 2:printf("bc:%d\n", ( leftint - rightint ));break;
case 3:printf("bc:%d\n", ( leftint * rightint ));break;
case 4:printf("bc:%lf\n", (double)( (double)leftint /(double)rightint )); break;
}
free( str_left );
free( str_right );
free( inputs );
}
}