30/09/2018, 16:02
Tính độ dài string mà không dùng hàm length()
Em có 1 string s = "abcdxyz".
Không dùng hàm s.length()
để tính độ dài string này, thì còn cách nào khác không ạ ?
Nếu như là char s[]="abcdxyz"
thì có thể kiểm tra cuối xâu, vậy còn cái này thì sao ạ ?
Bài liên quan
Cho anh hỏi lý do tại sao em không muốn dùng hàm length()?
Đề bài yêu cầu như vậy a ạ
Cái này hay dùng trong vector.
dùng size chắc cũng không cho đâu =))
size() và length() đều không đc dùng ạ, phải code như a Đạt thôi
Đắng =)) lòng. Vậy làm vòng while đi. cho i =0;s[i] != null ; i++ xem sao. Code anh đạt là code c++, chưa quen nhìn khó. hehe =)).
Ủa, Phát Nguyễn hỏi C++ mà
à vâng. Em nói ý của em mà. Trừ những bài không làm cách nào mà bắt buộc hàm có sẵn. Không thì em toàn code tính toán bình thường
Chắc phải chuyển qua chuẩn C++ cho quen. tại nhà trường ngày trước dạy C++ mà cứ như dạy C. Thành ra nhiễm C nặng.
Nếu như là char s[] thì mới dùng đc
i =0;s[i] != null ; i++
chứ, cái này nó là string s màCái này mình viết suy nghĩ của mình thôi chứ k phải lệnh code nha @@
cho e hỏi khai báo như này có khác gì bình thường ko?
Em xem các thảo luận ở đây sẽ rõ.
hôm nọ em có đọc ở đâu đó cách này
Em có đọc trong một tài liệu:
s.begin(): Trả về iterator đầu tiên của chuỗi.
s.end(): Trả về iterator lặp cuối của chuỗi
using namespace std
thì mình p ghistd::string::iterator
để khai bao biến phải không?Chình xác, đây gọi là “hack” nè hàm printf sẽ return ra số lượng ký tự đã in lưu vào i, thì i chính là độ dài của chuỗi. Like mạnh
Con trỏ trỏ tới một phần tử của chuỗi.
Chính xác
Vì nó là con trỏ, nên phải dùng *it để lấy giá trị tại vị trí nó trỏ tới
E code trên Dev C
tính độ dài string s thì y hệt như char s[]
ra kết quả vẫn đúng ạ
Đúng, đây cũng là một cách nếu mình không muốn dùng iterator.
std::string
có hỗ trợoperator[]
. Nhưng cẩn thận vìoperator[]
sẽ không cảnh báo nếu mình lấy ra phần tử không thuộc về string. Có thể gây ra lỗi. Cũng giống như mình làm với char[].http://www.cplusplus.com/reference/string/string/operator[]/
A cho e 1 cái ví dụ về cái lỗi này đc ko ạ
Ví dụ trường hợp này, s[4] không tồn tại, nhưng mình vẫn cố lấy ra thì C++ không báo lỗi, nhưng s[4] chứa giá trị gì thì không ai biết được.
Em xem bài mảng, con trỏ để hiểu thêm.