Thắc mắc ý nghĩa dòng lệnh isSubstring

Mọi người cho em hỏi câu này nghĩa là gì với ạ

isSubstring = (string1.find(string2)!=string::npos)?true:false;

Kiểm tra xem string2 có phải là con của string1 không

3 Likes

nhưng mà cái !=string::npos có nghĩa là gì ạ?

string::npos là giá trị đặc biệt, ở đây có nghĩa là “không tìm thấy” :smiley:

2 Likes

vậy thì câu này có nghĩa là kiểm tra xem string2 có phải là con của string1 không và nếu nó khác cái giá trị đặc biệt đấy thì đưa ra true, còn không là false phải không?

Tìm vị trí của chuỗi 2 trong chuỗi 1 nếu ko bằng giá trị string::npos thì hàm isSubstring là đúng còn nếu bằng string::npos thì là sai.
Còn giá trị của npos là 1 giá trị tượng trưng ko tồn tại, có thể lấy giá trị (<0) cũng đc (vì ví trí của chuỗi được đánh số từ 0).

1 Like

string::npos (No position) có giá trị chính xác là -1. Nhưng kiểu size_t lại là kiểu không dấu nên nó có nghĩa là giá trị lớn nhất của kiểu này.
Phương thức string::find() trả về string::npos khi không tìm được vị trí của chuỗi con.

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?