int readnumber(char* string, int* ppos) { int result = 0; while(*ptr >= '0' && *ptr <= '9') { result *= 10; result += *ptr; ptr++; *ppos++; } return result; } int calcstring(char* string, int* ppos) { char* ptr = string; int result = 0; int idx = 0; while(*ptr) { int pos = 0; if(*ptr == '(') { result = calcstring(ptr++, &pos); ptr += pos; idx += pos; } else if(*ptr == ')') { if(ppos) *ppos = idx; return result; } else if(*ptr >= '1' && *ptr <= '9') { int num = readnumber(ptr, &pos); printf("num gelesen: %i\n", num); ptr += pos-1; idx += pos-1; } idx++; ptr++; } return result; }