Đề bài là cho 1 chuỗi , sửa chuỗi đó sao cho , vị trí chẵn thì viết hoa , vị trí lẻ thì viết thường .
Cho em hỏi tại sao cái chỗ copy s2 vs s1 lại ko đc ạ,
Còn nếu em cho copy theo từng phần tử thì nó bị lỗi ntn , mong mọi người giúp em ạ.
Đề bài là cho 1 chuỗi , sửa chuỗi đó sao cho , vị trí chẵn thì viết hoa , vị trí lẻ thì viết thường .
Cho em hỏi tại sao cái chỗ copy s2 vs s1 lại ko đc ạ,
Còn nếu em cho copy theo từng phần tử thì nó bị lỗi ntn , mong mọi người giúp em ạ.
em đang viết code C hay code C++ :V C++ thì xài std::string cho chuỗi chứ ko xài mảng kí tự nha :V
#include <string>
std::string s1;
std::cout << ...
std::getline(std::cin, s1);
std::string s2 = s1;
for (int i = 0; i < s1.size(); ++i) ...
Bởi vì s2 không có ký tự \0 kết thúc chuỗi.
Nên nó cứ in đến khi nào gặp được \0 thì thôi nên mới tòi ra đoạn ký tự lạ.
Giải pháp là xoá toàn bộ mảng 2 về 0 trước khi xử lý.
Gợi ý : sử dụng memset trong string.h
em cám ơn ạ

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