[C言語]自作関数で文字列から数値に変換!atoi関数を使わない方法

C言語
広告

文字列から数値に変換する方法は、プログラミングでよく使われる操作です。

C言語には、標準ライブラリにatoi関数が用意されていますが、これを使わずに文字列から数値に変換する方法もあります。

SPONSORLYNC

自作atoi関数で文字列から数値に変換する

自力で文字列から数値に変換する方法は、各桁の文字コードを利用して数値に変換します。

#include <stdio.h>

int string_to_int(const char *str) {
    int result = 0;
    int sign = 1;
    int i = 0;

    // 符号をチェック
    if (str[0] == '-') {
        sign = -1;
        i = 1; // 符号の次の位置から開始
    }

    // 数値に変換
    while (str[i] != '
#include <stdio.h>

int string_to_int(const char *str) {
    int result = 0;
    int sign = 1;
    int i = 0;

    // 符号をチェック
    if (str[0] == '-') {
        sign = -1;
        i = 1; // 符号の次の位置から開始
    }

    // 数値に変換
    while (str[i] != '\0') {
        result = result * 10 + (str[i] - '0');
        i++;
    }

    return sign * result;
}

int main() {
    char str[] = "12345";
    int num = string_to_int(str);
    printf("変換後の数値: %d\n", num);

    return 0;
}
') { result = result * 10 + (str[i] - '0'); i++; } return sign * result; } int main() { char str[] = "12345"; int num = string_to_int(str); printf("変換後の数値: %d\n", num); return 0; }

このプログラムでは、与えられた文字列を数値に変換しています。

string_to_int関数は、文字列を走査して数値に変換します。

ポインタを利用して文字列に変換する

ポインタを使って文字列を数値に変換する方法もあります。

#include <stdio.h>

int string_to_int(const char *str) {
    int result = 0;
    int sign = 1;

    // 符号をチェック
    if (*str == '-') {
        sign = -1;
        str++; // 符号の次の位置から開始
    }

    // 数値に変換
    while (*str != '
#include <stdio.h>

int string_to_int(const char *str) {
    int result = 0;
    int sign = 1;

    // 符号をチェック
    if (*str == '-') {
        sign = -1;
        str++; // 符号の次の位置から開始
    }

    // 数値に変換
    while (*str != '\0') {
        result = result * 10 + (*str - '0');
        str++;
    }

    return sign * result;
}

int main() {
    char str[] = "12345";
    int num = string_to_int(str);
    printf("変換後の数値: %d\n", num);

    return 0;
}
') { result = result * 10 + (*str - '0'); str++; } return sign * result; } int main() { char str[] = "12345"; int num = string_to_int(str); printf("変換後の数値: %d\n", num); return 0; }

このプログラムでは、ポインタを利用して文字列を走査し、数値に変換しています。

[C言語]自作関数で数値から文字列に変換!itoa関数を使わない方法
C言語において、数値から文字列に変換する方法は様々あります。その中でも、itoa関数を使わずに数値から文字列に変換する方法を学びましょう。
広告

まとめ

この記事では、C言語でatoi関数を使わずに文字列から数値に変換する方法を紹介しました。

自力で変換する方法やポインタを利用する方法を示しました。

文字列から数値に変換する際は、これらの方法を活用してください。

C言語
広告
タイトルとURLをコピーしました