01/10/2018, 09:44
Hỏi về chuỗi và phép toán
Chào mọi người, mình xin phép đăng bài hỏi về chuỗi trong C ++, vấn đề em thắc mắc là có cách nào để mình có thể nhập chuỗi kiểu như: " 1 + 3 " thì output sẽ là 4 không ạ
Bài liên quan
Bạn tách chuỗi đấy ra rồi xử lý từng ký tự, phân loại cái nào là số, cái nào là phép toán, cái nào không phải. rồi tính và trả về kết quả.
Cảm ơn bạn đã trả lời ^^ , nhưng thuật toán để biến 1 ký tự thành toán tử , hay 1 ký tự thành 1 số , thì mình chưa nghĩ ra, bạn có thể gợi ý cho mình 1 chút không ?
về ký tự thành số thì trong C có hàm sẵn rồi mình ko nhớ rõ, bạn thử search google xem sẽ thấy ngay. còn về ký tự thành toán tử thì ko phải vậy mà ý mình là bạn so sánh xem ký tự đấy có phải toán tử hay ko bằng cách so sánh mã ASCII của nó :
vi.wikipedia.org
ASCII
ASCII (American Standard Code for Information Interchange - Chuẩn mã trao đổi thông tin Hoa Kỳ), thường được phát âm là át-xơ-ki, là bộ ký tự và bộ mã ký tự dựa trên bảng chữ cái La Tinh được dùng trong tiếng Anh hiện đại và các ngôn ngữ Tây Âu khác. Nó thường được dùng để hiển thị văn bản trong máy tính và các thiết bị thông tin khác. Nó cũng được dùng bởi các thiết bị điều khiển làm việc với văn bản. Cũng như các mã máy tính biểu diễn ký tự khác, ASCII quy định mối tương quan giữa kiểu bit số ...
cách đơn giản nhất là bạn so sánh mã ascii xem cái nào là toán tử cái nào là số cái nào ko phải.:
http://diendan.congdongcviet.com/threads/t46387::xuat-ma-ascii-cua-tung-ky-tu-trong-cpp.cpp
chuyển từ kí tự sang số thì mình sẽ thao tác với file , còn chuyển từ kí tự sang toán tử thì nên so sánh mã ascII
Cái này cũng hơi phức tạp. Sinh cây nhị phân. Dính thêm mấy phép toán có ngoặc cũng phải nghĩ đây…
Trừ khi bạn code python ra, còn lại thì bạn phải code RPN thì mới input “1+3” ra 4 được.
Here: RPN
bài này bạn phải xử lý biểu thức, nó liên quan đến biểu thức trung tố, tiền tố, hậu tố.
GG để biết thêm chi tiết Have fun !