Nó thêm kí tự '\0' cho em nên em chỉ có thể dùng 4 thui. Dùng kiểu này bên C++ quả thật rất tồi, em có thể dễ dàng dùng std::string hay std::vector<char> .
Cái này em khai báo chuỗi động, nhưng khi gõ vào >= 5 ký tự thì nó bị tình trạng còn dư ký tự ‘\n’ trong luồng, nó không cho nhập nữa, dùng cin.ignore() cũng ko tác dụng.
Sao kỳ vậy ta? Sách ghi cin.getline() quăng delimiter khỏi istream mà? Sao còn cái gì trong luồng dc? Khó hiểu quá.
Nếu là mảng động thì em khai báo A = 1 có được ko? (cho mọi mảng động thuộc mọi kiểu)
Code:#include <iostream> using std::cout; using std::cin; using std::endl; const int A = 5; void main() { char *first = new char[A], *mid = new char[A], *last = new char[A]; cout << "Enter first name: "; cin.getline(first, A); cout << "Enter middle name: "; cin.getline(mid, A); cout << "Enter last name: "; cin.getline(last, A); cout << endl; delete[] first; delete[] mid; delete[] last; }
"what you don't use you don't pay for" (Bjarne Stroustrup).
Nó thêm kí tự '\0' cho em nên em chỉ có thể dùng 4 thui. Dùng kiểu này bên C++ quả thật rất tồi, em có thể dễ dàng dùng std::string hay std::vector<char> .
Vậy là khi dùng mảng ký tự như 1 chuỗi thì chỉ có thể dùng tĩnh thôi, và luôn phải khai báo dung lượng thừa lớn lớn như a[100] hay a[1000] ^ ^. (Kiểu string em chưa học tới)
"what you don't use you don't pay for" (Bjarne Stroustrup).
string còn dễ hơn char* ấy chứ ? Em xem 1 ví dụ thì hiểu ngay
Khỏi cần kí tự null, khỏi cần lo lắng size, automatically growC++ Code:
std::string input;!