tôi muốn thay đổi một C++ chuỗi tại một chỉ số đặc biệt như thế này:C++, cách tốt nhất để thay đổi một chuỗi tại một chỉ số đặc biệt
string s = "abc";
s[1] = 'a';
là đoạn mã sau hợp lệ? Đây có phải là cách chấp nhận được để làm điều này không?
tôi không tìm thấy bất kỳ tài liệu tham khảo mà nói rằng đó là hợp lệ:
http://www.cplusplus.com/reference/string/string/
nào nói rằng thông qua "[] điều hành quá tải trong chuỗi" chúng ta có thể thực hiện các hoạt động viết.
Vâng, không có vấn đề gì cả. Nếu bạn thực sự muốn tham chiếu, mục 21.4.5/2 của tiêu chuẩn C++ 11. –
Ugh. Trong C++ 11 điều này thực sự bị cấm do lỗi trong tiêu chuẩn, và bạn * về mặt kỹ thuật * phải sử dụng 's.begin() [1] = 'a';' Nhưng nó không đáng lo ngại. – Potatoswatter
Và bạn * đã * tìm thấy một tài liệu tham khảo cho biết nó là hợp lệ, mặc dù cplusplus.com nói chung là không đạt chuẩn và thường lỗi thời. Xem xét các liên kết, nó không rõ ràng những gì khác bạn muốn biết. – Potatoswatter