[C言語]文字列を数値か判定し変換抽出!IntやString配列の入替についても

[C言語]文字列を数値か判定し変換抽出!IntやString配列の入替についてもC言語
広告

今回はC言語で文字列を数値に変換する方法と、Int配列やString配列の要素入れ替えについて学んでいきましょう。

初心者の方でもわかりやすく解説していきますので最後までお付き合いください。

広告

文字列を数値かどうかを判定する

数値かどうかを判定するには、isdigit関数を使用します。

以下は数値かどうかを判定するサンプルコードです。

#include <stdio.h> 
#include <ctype.h>

int main() {
    // 文字
    char ch = '5';

    // 数値かどうかを判定
    if (isdigit(ch)) {
        printf("数値です\n");
    } else {
        printf("数値ではありません\n");
    }

    //結果:数値です

    return 0;
}

文字列を数値に変換し抽出する

C言語では文字列を数値に変換する方法がいくつかあります。

その中でも一般的な方法は、atoi関数を使用することです。

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

int main() {
    // 文字列
    char str[] = "42";

    // 文字列を数値に変換
    int convertedNumber = atoi(str);

    // 変換後の数値を出力
    printf("変換後の数値: %d\n", convertedNumber);

  //変換後の数値: 42

    return 0;
}
広告

String配列から数字のみInt配列に入替する

C言語で文字列配列から数字のものを数字配列に抽出する方法はいくつかあります。

以下はその一例です。これは文字列配列から数字を抽出して整数の配列に格納する方法です。

#include 
#include 
#include 
#include 

#define MAX_LENGTH 100 // 文字列の最大長さ

// 数字かどうかを判定する関数
int isNumber(const char *str) {
    while (*str) {
        if (!isdigit(*str))
            return 0; // 数字でない文字があれば0を返す
        str++;
    }
    return 1; // 全て数字なら1を返す
}

int main() {
    char strings[][MAX_LENGTH] = {"apple", "123", "banana", "456", "orange", "789"};
    int numbers[MAX_LENGTH]; // 数字を格納する配列
    int numbers_count = 0; // 数字の数

    for (int i = 0; i < sizeof(strings) / sizeof(strings[0]); i++) {
        if (isNumber(strings[i])) {
            numbers[numbers_count++] = atoi(strings[i]); // 文字列を整数に変換して格納
        }
    }

    // 抽出した数字の配列を出力
    printf("Extracted numbers: ");
    for (int i = 0; i < numbers_count; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");

    return 0;
}

このコードでは、isNumber関数を使って文字列が数字かどうかを判定し、atoi関数を使って文字列を整数に変換しています。

Int配列をString配列に変換する方法

整数の配列を文字列の配列に変換するには各整数を文字列に変換する必要があります。

C言語ではsprintf関数を使用して整数を文字列に変換することができます。

#include 
#include 

#define MAX_LENGTH 100 // 文字列の最大長さ

int main() {
    int numbers[] = {123, 456, 789};
    char strings[MAX_LENGTH][MAX_LENGTH]; // 文字列を格納する配列

    for (int i = 0; i < sizeof(numbers) / sizeof(numbers[0]); i++) {
        sprintf(strings[i], "%d", numbers[i]); // 整数を文字列に変換して配列に格納
    }

    // 文字列の配列を出力
    printf("Converted strings:\n");
    for (int i = 0; i < sizeof(numbers) / sizeof(numbers[0]); i++) {
        printf("%s\n", strings[i]);
    }

    return 0;
}

このコードでは、sprintf関数を使用して整数を文字列に変換しています。

それぞれの整数ごとに文字列を格納しその後文字列の配列を出力しています。

広告

まとめ

今回はC言語で文字列を数値に変換する方法と数値かどうかを判定する方法について学びました。

また、Int配列やString配列での要素入れ替え方法についても解説しました。

これらのテクニックは実際のプログラミングでよく活用されます。

ぜひ実際にコードを書きながら試してみてください。

タイトルとURLをコピーしました