Kali ini saya akan berbagi kode program untuk menghitung ekpresi aritmetika di dalam string yang bisa menggunakan operator +, -, /, dan *. Jika kalian ingin menggunakan operator lain, kalian bisa mengembangkannya sendiri.
#include <stdio.h>
#include <string.h>
#include <math.h>
float hitung(char *s){
int n=strlen(s);
float tmp=0;
char t[256]="";
int pos=0;
float tangka=0;
float hasil=0;
char tanda='+';
for(int i=0;i<n;i++){
if((s[i]>='0' && s[i]<='9') || s[i]=='.'){
t[pos]=s[i];
pos++;
t[pos]=0;
}else if(s[i]!=' '){
tmp=atof(t);
t[0]=0;
pos=0;
switch(tanda){
case '*' :
tangka*=tmp;
break;
case '/' :
tangka/=tmp;
break;
case '-' :
hasil+=tangka;
tangka=-tmp;
break;
case '+' :
default :
hasil+=tangka;
tangka=tmp;
}
tanda=s[i];
}
}
return hasil+tangka;
}
int main(){
char s[256];
int a[100];
float hasil=0;
memset(a, 0, 100*sizeof(int));
printf("input : ");fgets(s, 255, stdin);
hasil=hitung(s);
printf("%.2lf", hasil);
return 0;
}
Contoh
input : 23+24-25*4/2 -3.00