文字列から数字を抽出するC言語の方法は何ですか?

C言語では、ライブラリ関数とループを使用して文字列から数字を抽出することができます。以下は一般的な方法です:

  1. 指定された書式に従って入力を解析する
  2. scanf関数
  3. sscanfは文字列からデータを読み込む関数です。
#include <stdio.h>

int main() {
   char str[] = "abc123def456";
   int num;
   
   sscanf(str, "%*[^0123456789]%d", &num);
   
   printf("提取到的数字为:%d\n", num);
   
   return 0;
}

上記のコードでは、%*[^0123456789]は数字以外の文字をスキップし、%dは整数を抽出することを示します。sscanf関数の返り値は、成功した一致と抽出したパラメータの数を示します。

  1. 文字を一つずつ確認するためにループを使用する:文字列内の各文字をループで処理し、数字の文字であるかどうかを確認し、数字の場合は整数に変換して保存する。
#include <stdio.h>

int main() {
   char str[] = "abc123def456";
   char num_str[10] = "";  // 存储提取到的数字字符串
   int num = 0;  // 存储提取到的数字
   
   int i = 0;
   int j = 0;
   while (str[i] != '\0') {
      if (str[i] >= '0' && str[i] <= '9') {
         num_str[j] = str[i];
         j++;
      }
      i++;
   }
   
   num = atoi(num_str);  // 将数字字符串转换为整数
   
   printf("提取到的数字为:%d\n", num);
   
   return 0;
}

上記のコードでは、文字列内の各文字をループして、それが数字の文字であるかどうか(ASCIIコードが48〜57)を判別し、数字であればnum_str配列に保存します。最後に、atoi関数を使用して、num_strを整数に変換します。

実際の状況に応じて、適切な方法を選択してください。これは文字列から数字を抽出する一般的な方法です。

bannerAds