我得到了一個字符串,就像讀取一行上線的文件。 C是數字之間的分隔符。C - 從字符串中提取所有數字
3000C9.5452C5.644 ...
現在我想提取所有這些數字,並將它們寫入到一個稱爲矩陣的雙數組中。
fgets(input_string, filesize, infile);
int matrix_size = (int) strtof(input_string, &input_end);
++input_string;
int binary_matrix_size = sizeof (double)*(matrix_size * matrix_size);
double *Matrix = malloc(binary_matrix_size);
for (int index = 0; index < (matrix_size * matrix_size); ++index) {
while (!isdigit(input_string) && input_string) {
++input_string;
}
Matrix[index] = strtod(input_string, &input_end);
input_string = input_end;
}
哪一種浮動pouint數量是'3000C9.5452C5.644' ?? – LPs
您可以從ASCII表檢查數字的特定範圍(!isdigit(input_string)&& input_string)' - >應該是'while(!isdigit(*)'),這是0x30 - 0x39(1-9),如果你認識到它,只需用適當的整數替換它們。 –
' input_string)&&(* input_string!='\ 0')&& input_string)'順便說一句,我真的不知道你的代碼應該做什麼... – LPs