Tìm chuỗi con trong chuỗi C++
Bài viết này sẽ giải thích một số phương pháp kiểm tra xem một chuỗi có chứa một chuỗi con đã cho hay không trong C Show
Sử dụng hàm found substring at address 0x55edd2ecc014 2 để kiểm tra xem chuỗi có chứa chuỗi con trong C khôngHàm 2 là một phần của tiện ích chuỗi thư viện chuẩn C và được định nghĩa trong tiêu đề 4. Hàm nhận hai đối số con trỏ 5, đối số đầu tiên biểu thị chuỗi cần tìm kiếm và đối số kia biểu thị chuỗi cần tìm kiếmNó tìm địa chỉ bắt đầu đầu tiên của chuỗi con đã cho và trả về con trỏ tương ứng cho 5. Nếu không tìm thấy chuỗi con trong chuỗi đối số đầu tiên, con trỏ NULL được trả về
đầu ra
Sử dụng hàm found substring at address 0x55edd2ecc014 1 để kiểm tra xem chuỗi có chứa chuỗi con không 1 không phải là một phần của các tính năng thư viện tiêu chuẩn, nhưng nó được triển khai như một phần mở rộng trong thư viện GNU C, có thể được biểu thị bằng định nghĩa macro 3Sau khi được xác định, chúng ta có thể gọi hàm 1 để tìm lần xuất hiện đầu tiên của chuỗi con đã cho. Tuy nhiên, xin lưu ý rằng chức năng này bỏ qua trường hợp của cả hai chuỗi
đầu ra
Sử dụng hàm found substring at address 0x55edd2ecc014 5 để sao chép một chuỗi conNgoài ra, người ta có thể sao chép chuỗi con đã cho vào bộ đệm mới bằng hàm 5. Nó nhận ba đối số, đối số đầu tiên là con trỏ đích 5 nơi chuỗi con đã sao chép sẽ được lưu trữĐối số thứ hai là chuỗi nguồn và đối số cuối cùng biểu thị số byte đầu tiên được sao chép nhiều nhất. Lưu ý rằng nếu không tìm thấy byte null trong byte đầu tiên của chuỗi nguồn, thì chuỗi đích sẽ không bị kết thúc null Phần mềm này đếm số lần một chuỗi con xuất hiện trong một chuỗi sau khi nhận một chuỗi và một chuỗi con làm đầu vào. Chúng ta hãy xem xét một ví dụ Giải pháp sẽ là
Đây là mã nguồn của chương trình C để đếm số lần xuất hiện của một chuỗi con trong một chuỗi. Trên máy Linux, chương trình C được xây dựng và thực thi thành công. Cũng đưa ra dưới đây là đầu ra của ứng dụng Thí dụđầu ra 0Giải trình
Sử dụng chức năngđầu ra 1Giải trình Chúng tôi đã sử dụng phương thức strstr() thay vì tạo vòng lặp bên trong của riêng mình để xác định xem chuỗi con có khớp từ một vị trí nhất định trong vòng lặp bên ngoài hay không. Con trỏ của ký tự khớp đầu tiên được trả về bởi phương thức strstr(). Bộ đếm được tăng lên nếu con trỏ bằng với con trỏ cho ký tự ban đầu của vòng lặp bên ngoài. Với sự trợ giúp của phương thức strcmp(), chúng ta có thể hoàn thành mục tiêu tương tự. Hàm strchr cung cấp phiên bản đầu tiên của chuỗi cho mỗi ký tự Hàm strrchr trả về ký tự xuất hiện lần cuối trong chuỗi. Nếu ký tự không được phát hiện, chúng sẽ trả về con trỏ NULL thay vì con trỏ ký tự. Hãy tạo một chương trình xuất ra chỉ số đầu tiên và chỉ số cuối cùng của mỗi ký tự chữ thường trong một chuỗi bằng cách sử dụng các hàm này Một con trỏ tới ký tự nơi phát hiện sự xuất hiện của ký tự mong muốn được trả về bởi cả strchr và strrchr. Giả sử ký tự cần tìm là "b" và chuỗi cần tìm là "abcd. " Một con trỏ tới ký tự "b" trong chuỗi sau đó được trả lại. Trong trường hợp không có ký tự, NULL được trả về strstr() trong c là gì?Hàm strstr() trả về một con trỏ tới điểm bắt đầu xuất hiện đầu tiên của chuỗi 2 trong chuỗi 1 . Nếu string2 không xuất hiện trong string1, hàm strstr() trả về NULL. Nếu string2 trỏ đến một chuỗi có độ dài bằng 0, hàm strstr() trả về chuỗi1.
Có chức năng chuỗi con trong c không?Hóa ra là, trong C, thực sự không thể viết một hàm chuỗi con "tiện ích" thích hợp , điều đó không làm được . Tất cả những điều này là hệ quả của việc C không có kiểu chuỗi cấp một.
Strnstr trong c là gì?Hàm strnstr xác định vị trí xuất hiện đầu tiên của chuỗi kết thúc null \c little trong chuỗi \c big, trong đó không quá \c len ký tự được tìm kiếm. Characters that appear after a \0 character are not searched. |