在C語言中,可以使用庫函數和循環來從字符串中提取數字。下面是一種常見的方法:
sscanf
函數:sscanf
函數可以從字符串中按照指定的格式提取數據。首先,使用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
函數的返回值表示成功匹配并提取的參數數量。
#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
轉換為整數。
以上是兩種常見的從字符串中提取數字的方法。根據實際情況選擇適合的方法。