PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : دستور string to int در محیط کیل



hamid razavi
13-08-2012, 19:54
سلام به همگی
من یک رشته مثل t265l168ms رو از پورت سریال دریافت می کنم
می خوام عدد 265 یا 168 رو از رشته بالا جدا کنم و توی یک متغیر اینیجر بریزم
می خواستم ببینم مثل دستور mid در بسکام که یک تکه از رشته رو جدا میکنه رو درون کیل هم داریم
من از atoi استفاده کردم ولی درست جواب نداد
دستور دیگری برای تبدیل string به int وجود داره ؟
یا دستوری برای جدا کردن چند کاراکتر از یک رشته وجود داره؟

sadmonew
13-08-2012, 23:12
سلام مهندس
شما تا چه حد به زبان سي آشنايي دارين؟
-------------------------------------------------
خوب حتما براي دريافت از پورت سريال مثلا متغير data_in رو به صورت آرايه اي(رشته اي) تعريف كردين:


unsigned char data_in[7];
نحوه ذخيره شدن داده در اين متغير به اين صورته:


data_in[0] = 116; // charachter--> t
data_in[1] = 9; // number------> 265(low byte)
data_in[2] = 256; // number------> 265(high byte)
data_in[3] = 108; // charachter--> l
data_in[4] = 168; // number------> 168
data_in[5] = 109; // charachter--> m
data_in[6] = 115; // charachter--> s
مهندس خودتون تعيين ميكنيد كه اينطوري ذخيره بشه. عدد 265 كه ميبيند اينطوري نوشتم به خاطر اينه كه اين عدد يه عدد 8 بيتي نيست و 16 بيتي هستش و حتما" بايد به اين صورت ذخيره بشه.

hamid razavi
14-08-2012, 13:03
سلام آقای محمدی
ممنون از پاسختون
رشته رو اینطوری تعریف کردم

char input1[10];);

ولی فکر می کردم نحوه ذخيره شدن داده در اين متغير به اين صورته باشه:


data_in[0] = 116; // charachter--> t
data_in[1] = 50; // ascii 2
data_in[2] = 53; // ascii 5
data_in[3] =54; //ascii 6
data_in[4] = 108; // charachter--> l
data_in[5] = 49; // ascii 1
data_in[6] = 54; // ascii 6
data_in[7] = 56; // ascii 8
data_in[8] = 109; // charachter--> m
data_in[9] = 115; // charachter--> s
مگه عدد ها به صورت کاراکتری در رشته ذخیره نمی شه!




با کمک شما فهمیدم اشکل کجاست (نحوه برداشتم از روی پورت اشکال داشت)