数字の文字をどのように削除しますか

C言語では、数字を削除するためにループと条件分岐文が使用できます。以下にサンプルプログラムを示します。

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

void deleteDigits(char* str) {
    int len = strlen(str);
    int i, j;

    for (i = 0, j = 0; i < len; i++) {
        if (str[i] < '0' || str[i] > '9') {
            str[j++] = str[i];
        }
    }
    str[j] = '\0';
}

int main() {
    char str[100];

    printf("输入一个字符串:");
    fgets(str, sizeof(str), stdin);

    // 删除数字字符
    deleteDigits(str);

    printf("删除数字字符后的字符串:%s\n", str);

    return 0;
}

上のサンプルプログラムでは、deleteDigits関数は数字の文字を削除するために利用されます。これは、2つのポインタiとjを使用します。ここでiは現在の文字を指し、jは新しい文字列内の位置を指します。現在の文字が数字の文字でない場合、それは新しい文字列にコピーされ、jは1増加します。最後に、新しい文字列の末尾は終了記号\0に設定されます。

main 関数では、まず fgets 関数で標準入力から文字列を読み込みます。その後、deleteDigits 関数を呼び出して数字文字を削除し、その結果を出力します。

このサンプルプログラムでは文字列の数字のみが削除できます。他のタイプの数字(整数、浮動小数点など)は削除できません。他のタイプの数字を処理する場合は、stdlib.h などの適切な関数ライブラリを使用してください。

bannerAds