Tính độ Dài String Mà Không Dùng Hàm Length() - Dạy Nhau Học Trang chủ » độ Dài Của Xâu Trong 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 Xâu Trong Python độ Dài Cung Tròn độ Dài Cung Tròn 120 độ Của đường Tròn Có Bán Kính 3 Cm Là độ Dài Cung Tròn 60 độ Của đường Tròn Có đường Kính 8 Cm Là độ Dài Cung Tròn Bằng Gì 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 Xâu Trong 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++ Xâu Trong C++ - VNOI Lập Trình C++ - Tìm độ Dài Chuỗi 4.3.9 Độ Dài Của String - CppDeveloper Tìm độ Dài Chuỗi Trong C++ | 97 Bài Tập C++ Có Giải Hay Nhất Xâu Ký Tự Trong C++ String Trong C++ - Techacademy ìm độ Dài Của Chuỗi Trong C++ - Bài Tập C++ Có Lời Giải - Code24h [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ý ... Bài Tập C++ - Tìm độ Dài Chuỗi Trong C++ - VietTuts - MarvelVietnam