Sự khác biệt giữa std::string và char * và khi nào thì chọn một trong hai?

Với một bài toán liên quan đến chuỗi, cách sử dụng std::stringchar * có điểm gì khác biệt không?

Em dùng std::string cảm thấy dễ và đơn giản hơn char *. Và cũng chưa biết ưu điểm của char * trong trường hợp này là gì.

Mong các bác tư vấn giúp!

1 Like

string nhiều hàm hỗ trợ hơn :koala:

1 Like

char* gọn nhẹ hơn std::string. Nhiều khi cần xử lý đơn giản, chỉ cần truyền vào hàm như thế này:

void func(const char* s);

std::string là 1 class, trong đó ngoài lưu trữ 1 char* được cấp phát động ra thì còn lưu trữ thêm nhiều thuộc tính khác như capacity, length, … và một số member function khác. Khi biên dịch thì nó phải include cả thư viện vào.

1 Like

String là 1 class nên nó bá hơn nhiều, nhiều hàm hỗ trợ, nhưng dung lượng lớn, char thì ít hàm hơn, tiết kiệm bộ nhớ

2 Likes

String là :knife: , char* là :pushpin:
Tùy tình hình mà mình sử dụng :smiley:

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?