Convert String to Integer

Code

#include <stdio.h>
#include <stdint.h>

int custom_atoi(const char *str) {
    // Your logic here
    int k =0,j=0;
    char chuoi[10];  
    if(*(str) == '-'){
        for(int i = 0; *(str +i) !='\0'; i++){
            if(*(str + i) >= '0' && *(str + i) <= '9'){
                chuoi[k] = *(str + i);
                k++;
            }else if(*str>= 'a' && *str <= 'z'){
                return 0;
            }else if(*(str + i) >= 'a' && *(str + i) <= 'z'){
                break;
            }
        }
        chuoi[k] = '\0';
        int so = 0;
        for (int t = 0; chuoi[t] != '\0'; t++) {
            so = (so * 10 + (chuoi[t] - '0'));
        }
        return so = 0 - so;
    }else{
        for(int i = 0; *(str +i) !='\0'; i++){
            if(*(str + i) >= '0' && *(str + i) <= '9'){
                chuoi[k] = *(str + i);
                k++;
            }else if(*str>= 'a' && *str <= 'z'){
                return 0;
            }else if(*(str + i) >= 'a' && *(str + i) <= 'z'){
                break;
            }
        }
        chuoi[k] = '\0';
        int so = 0;
        for (int t = 0; chuoi[t] != '\0'; t++) {
            so = (so * 10 + (chuoi[t] - '0'));
        }
        return so;
    }        
    return 0;
}

int main() {
    char str[101];
    fgets(str, sizeof(str), stdin);

    // Remove newline
    uint8_t i = 0;
    while (str[i]) {
        if (str[i] == '\n') {
            str[i] = '\0';
            break;
        }
        i++;
    }

    printf("%d", custom_atoi(str));
    return 0;
}

Solving Approach

 

 

 

Upvote
Downvote
Loading...

Input

123abc

Expected Output

123