PDA

View Full Version : سوال: چند سوال در رابطه با رشته ها و كاراكتر ها ...؟



ali_mohamadi8928
دوشنبه 23 اردیبهشت 1387, 00:26 صبح
سلام

دوستان من چند تا سوال برام پيش اومده .

با چه تابع اي ميتونم كد اسكي مربوط به يك كاراكتر رو بدست بيارم ؟

چه جوري يك مقدار char يا CString رو به int تبديل كنم ؟

در كد زير چي بايد به ارگومان اول تابع اظافه كنم تا درس كار كنه . همينجوري خطا ميگيره ازم



CString a,b;
a = "Ali test";
strcpy(b,a);


چه جوري با داشتن ايندكس يك كاراكتر اون رو از رشته استخراج كنم ؟

مثلا رشته ي Test رو در نظر بگيريد . ايا تابع اي وجو داره كه اين رشته رو بهش بدي بعد ايندكس مثلا 2 رو بهش بدي بعد e رو بهمون بر گردونه ؟

A_Salimi
دوشنبه 23 اردیبهشت 1387, 00:42 صبح
چه جوري يك مقدار char يا CString رو به int تبديل كنم ؟

با تابع atoi

البته یادت باشه آرگومانهای ورودی بعضی هاشون char* هستند که باید تبدیل شن :

در تایپیکی با عنوان CString را چطور به char* تبدیل کنم ؟ روش تبدیل بیان شده


در كد زير چي بايد به ارگومان اول تابع اظافه كنم تا درس كار كنه

تبدیل به char* انجام نشده (کلاس CString) توابع جالبی داره اونا رو ببین و مطالعه کن
ضمنا برای کپی کردن اصلا نیازی به استفاده ازstrcpy نیست بلکه میتونی بنویسی b=a;


چه جوري با داشتن ايندكس يك كاراكتر اون رو از رشته استخراج كنم ؟


در مورد CString میتونی از تابع mid استفاده کنی . . . دقیقا چی میخوای ؟


مثلا رشته ي Test رو در نظر بگيريد . ايا تابع اي وجو داره كه اين رشته رو بهش بدي بعد ايندكس مثلا 2 رو بهش بدي بعد e رو بهمون بر گردونه ؟

بله با تابع Mid در مورد CString این کار ممکنه

ali_mohamadi8928
دوشنبه 23 اردیبهشت 1387, 01:13 صبح
خيلي ممنونم دوست عزيز

ايا امكان تبديل int هم به char يا CString وجود داره ؟

Nima_NF
دوشنبه 23 اردیبهشت 1387, 02:13 صبح
چه جوري با داشتن ايندكس يك كاراكتر اون رو از رشته استخراج كنم ؟
کلاس CSimpleStringT برای کار بر روی کارکتر ها مورد استفاده قرار می گیرد، به دو روش زیر:
1- به سادگی با [ ]
2 - یا با متد GetAt




CString strTest(_T("TEST"));

TCHAR ch = strTest[2];

// or use:
TCHAR ch = strTest.GetAt(2);




برای تبدیل عدد به رشته برای رشته های MFC :



Cstring strTest;
strTest.Format("%d", 153);


برای char نیز می توانید از تابع itoa_ استفاده کنید:



char buffer[65];

_itoa( 153 , buffer, 10 );



ضمنا برای تبدیل Cstring به char هم از GetBuffer به همراه مینیمم طول بافر استفاده کنید.


موفق باشید

ali_mohamadi8928
دوشنبه 23 اردیبهشت 1387, 06:41 صبح
کلاس CSimpleStringT برای کار بر روی کارکتر ها مورد استفاده قرار می گیرد، به دو روش زیر:
1- به سادگی با [ ]
2 - یا با متد GetAt




CString strTest(_T("TEST"));


TCHAR ch = strTest[2];


// or use:
TCHAR ch = strTest.GetAt(2);





برای تبدیل عدد به رشته برای رشته های MFC :







Cstring strTest;

strTest.Format("%d", 153);






برای char نیز می توانید از تابع itoa_ استفاده کنید:








char buffer[65];








_itoa( 153 , buffer, 10 );











ضمنا برای تبدیل Cstring به char هم از GetBuffer به همراه مینیمم طول بافر استفاده کنید.









موفق باشید





















من منظورم از تبديل رشته به عدد يا برعكس به اين صورت بود ... ايا اين قطعه كدهايي كه براي راهنمايي گذاشتيد هم همين كار رو ميكنه ؟

نمونه كد در VB



Dim A As String
Dim B As Integer
A = "123456"
B = Val(a)



اگه هيمن كار رو ميكنه پس نتيجه ي تبديل در كدام متغير ريخته ميشه ؟




Cstring strTest;
strTest.Format("%d", 153);


يا برعكس براي تبديل رشته به عدد چه جوري عمل بايد كرد ؟

نمونه كد در VB



Dim A As String
Dim B As Integer
B = 1234
A = Str(B)

A_Salimi
دوشنبه 23 اردیبهشت 1387, 08:55 صبح
ايا امكان تبديل int هم به char يا CString وجود داره ؟

بله با استفاده از تابع itoa

مثال زیر رو ببینید :



char h[10];
CString B(itoa(12345,h,10));


B به CString تبدیل شده یعنی همان 12345 اما CString

ali_mohamadi8928
دوشنبه 23 اردیبهشت 1387, 11:38 صبح
خيلي ممنون دوست عزيز .... ايا مرجع كاملي براي اين جور توابع وجود داره ؟

حسین محمدی
دوشنبه 23 اردیبهشت 1387, 11:49 صبح
به لینک زیر یک سر بزن

http://msdn.microsoft.com/en-us/library/0heszx3w(VS.80).aspx

A_Salimi
دوشنبه 23 اردیبهشت 1387, 12:24 عصر
خيلي ممنون دوست عزيز .... ايا مرجع كاملي براي اين جور توابع وجود داره ؟

Only Msdn:لبخندساده:

Nima_NF
دوشنبه 23 اردیبهشت 1387, 14:47 عصر
اگه هيمن كار رو ميكنه پس نتيجه ي تبديل در كدام متغير ريخته ميشه ؟وقتی می نویسیم strTest.Format نتیجه اعمال در همان strTest که از نوع Cstring هست قرار می گیرد.