Bài viết này sẽ giúp các bạn tách dãy số từ chuỗi. Ví dụ với chuỗi
"-1.223 %^& fsf 0.234 56.65 fsf 9 f"
Chúng ta sẽ tách được ra các số:
-1.223
0.234
56.65
9
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
// khong doc duoc str khi bat dau bang dau tru (-)
char* str= "-1.223 %^& fsf 0.234 56.65 fsf 9 f";
// khai bao, cap phat bo nho them s de cong them vao dau 1 ky tu
char* const s = (char*)malloc(sizeof(strlen(str))+1);
// cong them ky tu a
strcpy(s, "a");
strcpy(s + strlen(s), str);
printf("%s\n",s);
// tach lay cac so
int total_n = 0;
int n;
float i; // cac so can tach
printf("\nday cac so\n");
while (1 == sscanf(s + total_n, "%*[^0123456789-]%f%n", &i, &n))
{
total_n += n;
printf("%f\n", i);
}
return 0;
}
Ngoài ra thi việc này làm dễ dàng bằng java, các bạn có thể xem thêm tại đây:
tách dãy số từ chuỗi