01/10/2018, 01:14
Cho em hỏi sự khác nhau trong kiểu xâu và nên dùng cái nào?
Em đang ôn lại C++.
Cho em hỏi string và mảng char khác nhau như thế nào?
Khi làm bài tập về xâu thì nên dùng mảng char hay String? Dùng cái nào tối ưu hơn (tgian chạy)?
Bài liên quan
Theo mình hiểu thì.
Nếu mảng mà bạn dùng string thì sẽ lưu được từ hoặc chuỗi ví dụ như string arrayString = [mot, hai, ba]
Sẽ có 2 phần tử trong mảng trên.
Nếu mảng mà bạn dùng char thì chỉ lưu được ký tự mà thôi ví dụ như char arrayChar = [m,o,t,h,a,i,b,a]
Sẽ có 7 phần từ trong mảng trên.
Còn làm bài tập thì theo như trên mà bạn quyết định.
^ Làm gì có chuyện đó.
Bạn viết code mới thì dùng
std::string
thôi.Vả lại
std::string
có khả năng:- Tự co giãn
- Tự tiêu
c_str()
Lưu ý: Khi bạn ráp chuỗi nên dùng
std::stringstream
.vì mỗistd::string
có tối thiểu (overhead) 24 byte. http://jovislab.com/blog/?p=76Em cảm ơn.
Vậy cho em hỏi thêm chút nữa.
Trong Đây có viết một bài về các hàm xử lý xâu.
Thao tác về xâu (copy, ins, del, rev), giữa string và mảng char cái nào đơn giản hơn, Ok hơn, an toàn hơn?
C string: em phải biết kích cỡ của mảng ký tự, phải nhớ chèn null vào cuối chuỗi
std::string: vô tư
copy:
insert:
insert nhanh:
xóa toàn bộ chuỗi
xóa 1 phần chuỗi
đảo chuỗi:
Em cảm ơn.
Cho e sửa lại code của anh 1 chút.
std::reverse(begin(s), end(s)); //s trở thành "olleh"
sửa lại là:
std::reverse(s.begin(), s.end()); //s trở thành "olleh"