[C/C++]Hàm strtok cắt xâu – function strtok in string
[C/C++]Hàm strtok cắt xâu – function strtok in string Tháng Năm 23, 2015 nguyenvanquan7826 Lập trình 25 responses Hàm strtok(s1,s2) trả về chuỗi đầu tiên sau khi cắt s1 bởi các ký tự có trong chuỗi s2. VD s1 = “nguyen, van ...
[C/C++]Hàm strtok cắt xâu – function strtok in string
Hàm strtok(s1,s2) trả về chuỗi đầu tiên sau khi cắt s1 bởi các ký tự có trong chuỗi s2.
VD s1 = “nguyen, van quan” và ta dùng: char *p = strtok(s1,”, “) (có dấu phẩu và dấu cách) thì p là chuỗi: nguyen. Nếu muốn cắt tiếp chuỗi thì ta dùng strtok(NULL,s2) khi đó sẽ cắt chuỗi ban đầu bắt đầu từ vị trí mà trước đó đã dừng lại.
Ta sử dụng vào bài toán sau: nhập vào 1 xâu, sau đó viết nguợc lại các từ trong xâu đã nhập (các từ không chứa dấu phẩy, dấu chấm, đấu cách) và mỗi từ trên 1 dòng
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { int index = 0; int i; char *a = (char *)malloc(100*sizeof(char)); char **b = (char **)malloc(100*sizeof(char));; printf ("Nhap vao chuoi can dao nguoc: "); fflush(stdin); gets(a); char *p; p = strtok(a, ",. "); //cat chuoi bang cac ky tu ,. va space while(p != NULL) { b[index] = p; index++; p = strtok(NULL, ",. "); //cat chuoi tu vi tri dung lai truoc do } for (i = index-1; i>=0; i--) //in ra cac tu theo thu tu dao nguoc printf (" %s ", b[i]); printf (" "); return 0; }