Tách Số Trong Chuỗi C
Có thể bạn quan tâm
Hướng dẫn cách tách số trong chuỗi C. Bạn sẽ học được cách tất cả các số từ trong một chuỗi chứa cả chữ số lẫn ký tự sau bài học này.
Chúng ta có 2 phương pháp để tách số trong chuỗi C như sau:
- Hàm isdigit(): tách số trong chuỗi C bằng cách kiểm tra từng ký tự
- Tách số trong chuỗi C bằng hàm strtok()
Tách số trong chuỗi C bằng cách kiểm tra từng ký tự | Hàm isdigit()
Hàm isdigit() vốn được sử dụng để kiểm tra chuỗi có phải la số hay không trong C. Ứng dụng hàm này vào trong một vòng lặp, chúng ta có thể tiến hành kiểm tra từng ký tự trong chuỗi có phải là số hay không và tách ra nếu đó là số.
Chúng ta viết chương trình như sau:
| #include <stdio.h>#include <ctype.h>#include <string.h>int main(){ char str[] = "A100B20C3000D40"; char result[100]; int i=0; int n=0; for(i=0; i<=strlen(str); ++i){ /* Kiểm tra ký tự thứ i trong chuỗi đã cho có phải là số hay không*/ /* Nếu là số thì lưu vào chuỗi result*/ if(isdigit(str[i])){ result[n] = str[i]; n++; result[n] = '\0'; }else if(n){ /* Nếu chuỗi result chứa phần tử thì in chuỗi result*/ printf("%s\n",result); n=0; /* Reset và làm rỗng chuỗi result*/ } } return 0;} |
Kết quả trả về:
| 10020300040 |
Tách số trong chuỗi C bằng hàm strtok()
Hàm strtok() vốn được sử dụng để tách chuỗi trong chuỗi C bằng ký tự chỉ định. Ứng dụng hàm strtok() và chỉ định ký tự tách chuỗi là dãy chữ cái không phải là số, chúng ta có thể thực hiện việc tách số trong chuỗi C.
Chúng ta viết chương trình như sau:
| #include <stdio.h>#include <ctype.h>#include <string.h>int main(void){ char str[] = "A100B20C3000D40"; char *p, *q; p=str; while(q=strtok(p,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")){ p=NULL; printf("%s\n", q); } return 0;} |
Kết quả trả về:
| 10020300040 |
Lưu ý là với phương pháp này chúng ta cần phải chỉ định toàn bộ các ký tự không phải là số trong đối số ký tự phân tách trong hàm strtok().
Ở trên do Kiyoshi chỉ liệt kê các chữ cái, nên nếu trong chuỗi ban đầu chứa các ký tự dấu, ví dụ như dấu gạch ngang, hay dấu chấm than chẳng hạn, thì kết quả sẽ bao gồm cả các ký tự này.
Ví dụ:
| #include <stdio.h>#include <ctype.h>#include <string.h>int main(void){ char str[] = "abc123-4CD5!"; char *p, *q; p=str; puts(str); while(q=strtok(p,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")){ p=NULL; printf("%s\n", q); } return 0;} |
Kết quả:
| 123-45! |
- Xem thêm: Tách toàn bộ chuỗi con từ chuỗi trong C bằng hàm strtok
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn cách tách số trong chuỗi C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo
URL Link
https://laptrinhcanban.com/c/lap-trinh-c-co-ban/chuoi-string-trong-c/tach-so-trong-chuoi-c/
Từ khóa » Tách Ký Tự Trong Chuỗi C
-
Tách Chuỗi Trong C (strtok)
-
Tách Từng Ký Tự Trong Chuỗi Như Thế Nào? - Cộng đồng C Việt
-
Tách Các Từ Trong Chuỗi [Archive] - Diễn Đàn Tin Học
-
Lập Trình C: Hàm Xử Lý Chuỗi (String) | V1Study
-
[C++ Cơ Bản] Tách Các Từ Trong Một Chuỗi | Thào A Vảng - YouTube
-
Ký Tự Lạ Tự động Thêm Vào Khi Tách Chuỗi Trong C - Dạy Nhau Học
-
10 Ký Tự Và Chuỗi | Cẩm Nang Dịch Tễ Học Với R
-
Làm Thế Nào để Tách Chuỗi Văn Bản Trong Excel Theo Dấu Phẩy ...
-
(PDF) CHUỖI KÝ TỰ TRONG C | Nguyễn Hoàng Vinh
-
Hướng Dẫn Xử Lý Chuỗi Trong Lập Trình Vi điều Khiển (P1) - TAPIT
-
C Cơ Bản: Hàm Strtok - DevIOT