01/10/2018, 09:18

Hàm chuyển đổi chữ ra số và số ra chữ

Mình muốn lập 1 hàm chuyển từ số ra chuỗi và ngược lại từ chuỗi ra số. Do đó mình đã thử ép kiểu từ chữ ra số. Có một điểm ở đây là khi ép kiểu và (lấy giá trị của nó đem gán) thì sau đó mình nhận được giá trị được gán thì số đấy được gán 2 lần. Cho mình hỏi là tại sau nó là gán được 2 lần. Cụ thể là thế này.

# include <stdio.h>
# include <conio.h>
int chuyen(char c)
{
	return (int)c;
}
int main()
{
	do {
		char c;
		printf("nhap chu:");
		scanf("%c", &c);
		int d = chuyen(c);
		printf("%d",d);
	} while (1);
	return 0;

}

kết quả sẽ ra được.

Mình đã thử dùng mảng 2 chiều để gán nhưng không được. Khi mình nhập 1 giá trị lớn hơn 9 thì nó sẽ khác.

Thêm nữa, mình thử như sau:

# include <stdio.h>
# include <conio.h>
int chuyen(char c)
{
	return (int)c;
}
void chuyenso (int d)
{
	char s = (char)d;
	printf("ra chu: %c",s);
}
int main()
{
	do {
		int s;
		printf("nhap so");
		scanf("%d",&s);
		chuyenso(s);
		char c;
		printf("nhap chu");
		scanf("%c", &c);
		int d = chuyen(c);
		int sochung;
		int sochuyendoi;
		if(d==10)
		{
			int sochung = d;
			printf("sochung: %d",sochung);
		}
		else
		{
			sochuyendoi=d;
			printf("sochuyendoi: %d
",sochuyendoi);
		}
		
	} while (1);
	return 0;

}

mình muốn chuyển từ số ra chữ và rồi lại thử chuyển lại từ chữ ra số để thử nghiệm. thì chỉ có lệnh chuyển từ số sang chữ là chạy. Còn đâu việc nhập chữ, chuyển từ chữ sang số thì bị bỏ quá.

Khá là tò mò, tóm tắt, chuyên gia nào giải thích hộ em vấn đề nêu trên:
+) chuyển từ chữ sang số thì nó được mã hóa bởi >= 2 số.
+) và cái vấn đề kề ngay phía trên là gì đươc không ạ.

Quân viết 11:26 ngày 01/10/2018

Kiểu char là 1 kí tự mà cha nội, nên chỉ ép kiểu được khi chỉ 1 kí tự, nhập 2 kí tự là ép sai là đúng rồi, có method string to num chứ không phải ép kiểu ẩu thế được

Hiep viết 11:27 ngày 01/10/2018

1 kí tự mà. Bạn copy lại rồi chạy sẽ dễ hiểu hơn. Đúng là có nhiều hàm từ string to num nhưng mà mình là đang muốn biết hàm string to num như thế nào, và mình muốn là xem các chữ cái thì nó được mã hóa từ các số thế nào. Và hàm string to num này là mình phải tự tạo riêng.

Hiep viết 11:24 ngày 01/10/2018

Nếu là tn thì nó sẽ ra 65 thôi.


Còn khi mình đưa vào lòng lặp. ( mình nhập chữ a nhé và không nhập thêm bất cứ gì).

Tao Không Ngu. viết 11:23 ngày 01/10/2018

Hi Hiep.
Khi nhập xuất ký tự hay sâu bạn phải làm sạch bộ đệm. Nó còn ký tự \n nữa.

Hiep viết 11:35 ngày 01/10/2018

à cái này quên, thảo nào. thank chuyên gia nhiều, để thử lại.

Nguyễn Duy Hùng viết 11:33 ngày 01/10/2018

Dùng %*c là xong thôi.

Bài liên quan
0