All pastes #174795 Raw Edit

Miscellany

public text v1 · immutable
·published 2006-09-18 06:37 UTC
rendered paste body
int parse_number(char *string, int start, int end)
{
    int i, value = 0, neg = 0;
    if((int)string[start+1] == 45) { 
        neg = 1;
        start++;
    }

    for(i=0;start < end; end--, i++) {
        if(i == 0)
            value = ((int)string[end] - 48);
        else
            value = value + ((int)string[end] - 48) * (10*i);

    }

    if(neg == 1) {
        value = value * -1;
    }

    return value;
}

int parse_number_debug(char *string, int start, int end)
{
    printf("\nLimits: %i to %i\n",start, end);
    printf("%c\n",string[start]);
    int i, j, power, value = 0, neg = 0;
    if((int)string[start+1] == 45) { 
        neg = 1;
        start++;
    }

    for(i=0;start < end; end--, i++) {
        if(i == 0) {
            value = ((int)string[end] - 48);
            printf("First value: %i\n",(int)string[end] - 48);
        }
        else {
            /* I feel dirrrrrrrrrrrrty */
            for(j=1,power=10;j<i;j++)
                power *= 10;
            value = value + ((int)string[end] - 48) * power;
            printf("Next value: %i, power: %i\n",(int)string[end] - 48,i);
            printf("Current value: %i\n",value);

        }
    }

    if(neg == 1) {
        value = value * -1;
    }

    return value;
}