Xử lí phép toán trong char

Chào mọi người,
Mình đang viết một chương trình máy tính đơn giản.
Người dùng sẽ nhập vào biến char a. VD: “1+2” - Người dùng nhập nguyên như thế nhé!
Sau đó chương trình sẽ xử lí và lưu kết quả biến a vào int b rồi xuất b ra màn hình.
Có bạn nào làm được như thế không ạ.

Hi Phong Nguyễn Hải.
Bài này khó lắm. Thế giới không nhiều người làm được đâu. Bạn làm được thì up code lên cho mọi người học với.

2 Likes

Mình có ý tưởng là đọc từng ký người ta nhập vào. khi đến dấu + thì lưu ký tự truóc dấu + vào vế 1 sau thì vào vế 2 rồi cộng lại. nhưng mình k bik code. bạn biết thì chỉ mik với

Nếu chỉ đơn giản là cộng/trừ/nhân/chia hai số với nhau thì bạn có thể tham khảo ở đây :slight_smile:.

2 Likes

Không, ý mik là người dùng nhập vào nguyên “1+2” rồi mình tách ra thành vế 1 = 1, dấu = +, vế 2=2 rồi cộng lại với nhau

Mình thấy comment trên có lẽ đã giải quyết được vấn đề rồi nên mình chỉ cho bạn lời khuyên: Bạn không thiết kế giải pháp dựa trên việc viết code thế nào, bạn phải thiết kế giải pháp dựa trên logic mức cao, sau đó mới tìm cách viết code để hiện thực hóa nó. Đừng như nhiều người chỉ biết làm theo “văn mẫu”.

5 Likes

nhưng mình vẫn chưa biết cách làm sao để đọc từng ký tự trong char rồi đến một ký tự nào đó thì dừng rồi lưu lại và đọc tiếp

char là một kiểu dữ liệu để lưu một kí tự, bạn muốn có chuỗi kí tự, bạn phải dùng mảng char. Mình nghĩ bạn còn chưa rành cơ bản đã vội đi làm những bài khó (đối với bạn) thế này là không ổn tí nào.
Code của bác trên thì sử dụng std::cin, nó có convention đọc của nó, đọc vào biến kiểu gì thì nó có convention kiểu đó, kì thực input buffer nó cũng như nguyên một chuỗi kí tự của user rồi, có điều api này mức độ cao quá mà bạn có vẻ chỉ vừa mới học C++.

4 Likes

Có phải ý bạn muốn là phải đọc trước hết tất cả vào một biến, sau đó mới tách ra phải không?

4 Likes

mình đã có thể lưu 2 vế vào 2 biến char sau:

using namespace std;
int main(){
	char text[]="12+3";
	char ve1,ve2;
	int i=0;
	for (;text[i]!='+';i++)
		ve1+=text[i];
	for (;text[i]!='\0';i++)
		ve2+=text[i];
	cout<<ve1<<" "<<ve2;
}

vậy làm sau để cộng 2 số trong 2 biến char được. có phải chuyển từ char sang int k?

Bạn làm rất sai, chẳng biết bạn dựa trên cơ sở nào luôn. Tham khảo phương pháp đổi chuỗi sang số nhé. https://nguyenvanhieu.vn/chuyen-kieu-string-sang-int/

4 Likes

Vậy ý bạn là như thế này?

4 Likes

Đúng r. Cảm ơn bạn nhé

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