PDA

View Full Version : chuyển một chuỗi dạng Cstring sang dạng số như thế nào vậy?



nguyentam
09-05-2005, 10:00
Nếu mình có một chuỗi kiểu CString, dùng hàm nào để lấy ra từng ký tự của chuỗi đó vây? lấy ra từng ký tự rồi làm sao mà chuyển nó sang mã ascii vậy, ngược lại có một số rồi làm sao chuyển về dạng ký tự theo mã ascii?
Bạn nào tốt bụng chỉ mình cụ thể một chút được ko, cảm ơn rất nhiều

lazyghost
09-05-2005, 13:10
Nếu chuyển từ ascii --> số hoặc ngược lại thì cứ đối chiếu theo bảng mã rồi cộng trừ tương ứng là được rùi. Còn nếu cần thì có thể dùng hàm
char *_itoa( int value, char *string, int radix )
để chuyển từ một số sang chuỗi cũng được

Ngô Huy Ánh
10-05-2005, 01:53
MSDN chấm nước nắm.(operator[](int))
itoa(int, char*, int)--->int to char*
atoi(char*)--->char* to int

duytanghostlake
10-05-2005, 20:53
Hàm dùng để trích một ký tự bất kỳ :
CString st;
thì để trích ra ký tự thứ i : st(i), chỉ đơn giản vậy thôi

nguyentam
11-05-2005, 16:23
mình đã làm thử theo cách của Ngô Huy Ánh nhưng mà cái này hình như không phải là cái mình muốn hỏi. Theo như mình được biết thì hàm itoa dùng để chuyển từ số sang ký tự nghĩa là mình có số 123 thì _itoa(123) là chuỗi "123"
còn nếu có chuỗi x= "123" thì atoi(x) sẽ là số 123 chứ đâu thể chuyển đổi sang mã ascii đâu.

mình đã thử cách này nè:
ký tự sang mã ascii: cái này mình ko chuyển
ví dụ cho char a='A'; khi đó nếu mình lấy a thì cũng có nghĩa là mình có số 65
mã ascii sang ký tự thì ép kiểu: a=(char)số
mình thấy nó trả về kết quả cũng đúng
cảm ơn các bạn đã tham gia vào chủ đề này

nuilua3
11-05-2005, 19:39
Để lấy mã Asci của một kí tự ví dụ "A" bạn chỉ cần khai báo char A.sau đó
int v= int(A),thì v=65 thôi.Còn lấy kí tự Asci có mã 65 thì (tui không nhớ chính xác,có thể là một trong mấy cái này)char(65),cout<<65.

tdminh
22-05-2005, 18:52
Với số nguyên:

CString s;
int a = 10;
s.Format("%d", a);
cout << s << endl;

Với số thực:

CString s;
float b = 2.3;
s.Format("%f", b);
cout << s << endl;

xinh_gai
23-05-2005, 15:20
Mọi nguời ở trên góp ý đều đúng rồi đó.Bạn có thể tham khảo lại

Vinhie47
23-05-2005, 22:16
tdminh trả lời lạc đề rồi, người ta hỏi là lấy từng kí tự rồi chuyển đi chuyển lại cho vui chứ có phải là chuyển cả cái sâu đâu

goddess
14-10-2008, 16:50
48 trong bang ma ASCI la gi?

[=========> Bổ sung bài viết <=========]

em co 1 doan code viet bang c# ma chang hieu lam ,cac bac giup em duoc ko?
static string tinhTong(string so1, string so2)
{
string s;
int t,a,b,nho=0;
int n;
chuanHoaSo(ref so1,ref so2);//day la 1 chuong trinh con chuan hoa de 2 xau co cung do dai.Vi du nhu :de cong 5 va 15 thi phai them so 0 truoc so 5 y!!!!!!!!!!
StringBuilder kq=new StringBuilder("");
n=so1.Length-1;
while(n>=0)
{
a= so1[n]-48;
b= so2[n]-48;
t=a+b+nho;
s=t.ToString();
if(s.Length==1) s="0"+s;
nho=s[0]-48;
kq.Insert(0,s[1]);
n=n-1;
}
if(nho==1) kq.Insert(0,"1");
return kq.ToString();
}
Thank nhieu nhieu!!!!!!!!!