Operasi Aritmetika dengan String

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