Tính độ Dài String Mà Không Dùng Hàm Length() - Dạy Nhau Học Trang chủ » độ Dài Của Chuỗi C++ » Tính độ Dài String Mà Không Dùng Hàm Length() - Dạy Nhau Học Có thể bạn quan tâm độ Dài Của Chuỗi Python độ Dài Của String độ Dài Của Tín Gậy Trong Chạy Tiếp Sức độ Dài Của Tín Gậy Trong Chạy Tiếp Sức Là Bao Nhiêu độ Dài Của Tín Gậy Trong Chạy Tiếp Sức Trắc Nghiệm Tính độ dài string mà không dùng hàm length() programming c++ phatnguyen (Phát Nguyễn) March 3, 2015, 2:44am #1 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 ạ ? 1 Like Nhập vào xâu kí tự, in ra độ dài xâu ltd (Lê Trần Đạt) October 28, 2014, 11:05am #2 Cho anh hỏi lý do tại sao em không muốn dùng hàm length()? #include <iostream> #include <string> main() { std::string s = "abcdxyz"; int len = 0; for(std::string::iterator it = s.begin(); it != s.end(); ++it) { if (*it != '\0') len++; } std::cout << len; return 0; } 8 Likes phatnguyen (Phát Nguyễn) October 28, 2014, 11:00am #3 Đề bài yêu cầu như vậy a ạ qtd (Đỗ Trung Quân) October 28, 2014, 11:04am #4 phatnguyen: 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 ạ ? Cái này hay dùng trong vector. #include <iostream> #include <string> using namespace std; int main () { string s="abcdxyz"; //size of string cout<<s.size(); } 4 Likes ltd (Lê Trần Đạt) October 28, 2014, 11:06am #5 dùng size chắc cũng không cho đâu =)) 3 Likes phatnguyen (Phát Nguyễn) October 28, 2014, 11:07am #6 size() và length() đều không đc dùng ạ, phải code như a Đạt thôi 1 Like qtd (Đỗ Trung Quân) October 28, 2014, 11:09am #7 Đắ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 =)). ltd (Lê Trần Đạt) October 28, 2014, 11:10am #8 Ủa, Phát Nguyễn hỏi C++ mà 1 Like qtd (Đỗ Trung Quân) October 28, 2014, 11:13am #9 à 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. 3 Likes phatnguyen (Phát Nguyễn) October 28, 2014, 11:15am #10 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à 3 Likes qtd (Đỗ Trung Quân) October 28, 2014, 11:25am #11 phatnguyen: 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 @@ 1 Like alovnoia (Thanh Tùng) October 28, 2014, 11:31am #12 ltd: std::string s = “abcdxyz” cho e hỏi khai báo như này có khác gì bình thường ko? ltd (Lê Trần Đạt) October 28, 2014, 11:36am #13 Em xem các thảo luận ở đây sẽ rõ. Using namespace std khác với using std::cin hay std::cin như thế nào programming Tiếp tục thảo luận từ đây C++ Chương I:Bài Tập Căn Bản: 1 Like nguyendh October 28, 2014, 2:10pm #15 hôm nọ em có đọc ở đâu đó cách này i = printf("Hello world"); printf("%d", i); 8 Likes ndth (AnNdth) October 28, 2014, 3:18pm #16 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 Vậy cho e hỏi iterator ở đây là gì? Khi mình không khai báo using namespace std thì mình p ghi std::string::iterator để khai bao biến phải không? Tại sao phần phải dùng *it ở câu lệnh if? ltd (Lê Trần Đạt) October 29, 2014, 12:37am #17 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 ltd (Lê Trần Đạt) October 29, 2014, 12:38am #18 ndth: Vậy cho e hỏi iterator ở đây là gì? Con trỏ trỏ tới một phần tử của chuỗi. ndth: Khi mình không khai báo using namespace std thì mình p ghi std::string::iterator để khai bao biến phải không? Chính xác ndth: Tại sao phần phải dùng *it ở câu lệnh if? Vì nó là con trỏ, nên phải dùng *it để lấy giá trị tại vị trí nó trỏ tới 3 Likes phatnguyen (Phát Nguyễn) October 29, 2014, 2:49am #19 E code trên Dev C #include<iostream> #include<cstring> using namespace std; int main(){ string s="Aaxvbnj"; int i=0; while( s[i] != '\0'){ i++; } cout<<i; return 0; } tính độ dài string s thì y hệt như char s[] ra kết quả vẫn đúng ạ 1 Like ltd (Lê Trần Đạt) October 29, 2014, 3:09am #20 Đú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[]/ phatnguyen (Phát Nguyễn) October 29, 2014, 3:17am #21 ltd: lấy ra phần tử không thuộc về string. A cho e 1 cái ví dụ về cái lỗi này đc ko ạ next page → DayNhauHoc's Discord Học C++ Free? Click Blog Dạy Nhau Học Tự Học Lập Trình 83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao? Từ khóa » độ Dài Của Chuỗi C++ Lấy độ Dài String Trong C++ Độ Dài Chuỗi Trong C++ (strlen) Bài Tập C++ - Tìm độ Dài Chuỗi Trong C++ - VietTuts Tìm độ Dài Của Chuỗi Trong C++ Lập Trình C++ - Tìm độ Dài Chuỗi Tìm độ Dài Chuỗi Trong C++ | 97 Bài Tập C++ Có Giải Hay Nhất 4.3.9 Độ Dài Của String - CppDeveloper ìm độ Dài Của Chuỗi Trong C++ - Bài Tập C++ Có Lời Giải - Code24h Bài Tập C++ - Tìm độ Dài Chuỗi Trong C++ - VietTuts - MarvelVietnam Xâu Trong C++ - VNOI Tìm độ Dài Của Chuỗi Trong C++ - Freetuts String Trong C++ - Techacademy Xâu Ký Tự Trong C++ [Lập Trình C++ Cơ Bản] Bài 8 (phần 2): Xâu Kí Tự - Các Thao Tác Xử Lý ...