Có cách nào trong C để tách một chuỗi (sử dụng strtok
hoặc bất kỳ cách nào khác) trong đó dấu tách dài hơn một ký tự không? Tôi đang tìm một cái gì đó như thế này:Có cách nào để tách một chuỗi trên nhiều ký tự trong C?
char a[14] = "Hello,World!";
char *b[2];
b[0] = strtok(a, ", ");
b[1] = strtok(NULL, ", ");
Tôi muốn điều này không chia chuỗi vì không có khoảng trống giữa dấu phẩy và W. Có cách nào để làm điều đó?
Đó có phải là C hoặc C++ không? – Jason
Đó là C nếu bạn bao gồm '', và đó là C++ nếu bạn nói 'std :: substr' và bao gồm' ', mặc dù trong C++ bạn sẽ không sử dụng con trỏ char thường cho chuỗi. –
@Kerrek: Tùy thuộc vào những gì bạn đang làm. Các cặp con trỏ char làm việc thực sự tốt để phân tích cú pháp các tệp văn bản được ánh xạ bộ nhớ mà không cần các bản sao hoặc phân bổ dữ liệu. Bạn quấn chúng trong một lớp học tốt đẹp, tất nhiên. –