Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

nomad-programmer

[C] atoi 함수 예제 본문

Programming/C

[C] atoi 함수 예제

scii 2020. 6. 10. 01:17

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

// 최대 길이 설정하여 arr에 문자열 저장
int GetString(char* arr, int limit) {
    for (int i = 0; i < limit; i++) {
        arr[i] = getchar();
        if (arr[i] == '\n') {
            arr[i] = '\0';
            return 1;
        }
    }
    // 표준 입력 버퍼를 비운다.
    rewind(stdin);
    arr[0] = '\0';
    return 0;
}

// atoi 함수의 기능을 새롭게 정의하였다.
int Str2Num(char* arr) {
    int res = 0;
    int cnt = 0;

    while (arr[cnt] != '\0') {
        res = (res * 10) + (arr[cnt] - '0');
        cnt++;
    }
    return res;
}

int main(void) {
    char str_num1[20];
    char str_num2[20];
    int state;
    int num1, num2;

    state = GetString(str_num1, sizeof(str_num1)/sizeof(char));
    if (!state) {
        puts("입력 문자열이 너무 깁니다.");
        return 5;
    }
    // num1 = atoi(str_num1);
    num1 = Str2Num(str_num1);

    state = GetString(str_num2, sizeof(str_num2)/sizeof(char));
    if (!state) {
        puts("입력 문자열이 너무 깁니다.");
        return 5;
    }
    // num2 = atoi(str_num2);
    num2 = Str2Num(str_num2);

    printf("%d + %d = %d\n", num1, num2, num1 + num2);

    return 0;
}

atoi 표준 함수는 숫자로된 문자열을 정수형 숫자로 변환시켜준다.

이런 기능을 새롭게 만든 예제이다.

Comments