Đây là một cách “hack” hay mà. Đâu phải lúc nào cũng áp dụng được. hehe
Tính độ dài string mà không dùng hàm length()
Hôm nay ngứa nghề nghịch thử, thế mà nó chạy đc, nhưg a Đạt chỉ ra 1 lỗi sai của nó rồi, ngon nhất thì vẫn cứ làm biên con chạy Interator
Cho e hỏi i++ phía sau dùng để làm gì ?
Để đếm thôi, biến i thông thường là biến đếm.
Nếu không cho dùng method của std::string thì dùng strlen cũng được strlen(&s[0])
Chắc thầy muốn trò hiểu cách string trong c/c++ được lưu trữ thế nào nên đánh đố nhau vậy
Superb, đúng là @Gio luôn có những câu trả lời rất đáng ngạc nhiên nhé, em hiểu rõ về std quá
#include <iostream>
#include <string>
int main()
{
std::string s = "abcdxyz";
std::cout << s.begin() - s.end();
}
strlen(str.c_str());
Nếu thử với std::string s=“Hello world!!/0”; thì chẳng có trường hợp nào đếm đủ 15 kí tự cả.
Đó là vì bạn muốn biểu diễn kí tự \ trong chuỗi thì bạn phải ghi \\
trước giờ vẫn dùng bằng cách: for(int i = 0; str[i] != 0 ; i++) với str là string mình không thích dùng hàm lắm vì nó tạo cảm giác bị động và phải nhớ nhiều
cho e hỏi cái điều kiện != ‘/0’ nghĩa là sao ạ. e mới thấy nên k biết
Ký tự kết thúc chuỗi là \0'
, nên *it != '\0'
có nghĩa là chưa hết thúc chuỗi.
a datnh giỏi quá. Biết viết gì cho đủ 20 ký tự đây …
Trừ phi có reflector thì ko nên và ko cần thiết phải vén “bức màn” encapsulation.
Tính độ dài string mà không dùng hàm length() thì cứ việc duyệt string[i]
với i
tăng dần, lúc nào chương trình báo IndexArrayOutOfBound
exception thì tức là hết string =]]
Mình nghĩ cái này cũng không nhất thiết sử dụng vector đâu, dùng mảng char là được rồi. Cái này nên convert string sang mảng char và làm như thông thường là được á. Đề bài không cho dùng len với string thì dùng len với mảng char. Có chết ai đâu!
ngầu lòi… thật thì đúng ai chăm học thì nhìn ra chứ như em học xong quên thì công nhận là …