کامپیوتر و IT و اینترنتعلوم مهندسی

رشته های كاراكتری و فايل ها در ++C استاندارد

صفحه 1:

صفحه 2:

صفحه 3:
جلسه هشتم 3 اساندار ۵ «وننته‌های کاراکتری و ثایل‌ها در 07۳۳ 9

صفحه 4:
آچه دراین پلسه می فینید مرورى بر ۳ ! رشتههاى كاراكترى در 0 0 0 ورودى /خروجى رشتههاى كاراكترى چند تابع عضو 2و 2 " توابع کاراکتری () استاندارد آرايهاى از رشتهها '' توابع استاندارد رشتههاى كاراكترى )2

صفحه 5:
أرشتههاى كاراكترى در 00++ استاندارد آنگاهی دقيق تر به تبادل داددها ۳ 20 کف : اشتابي بأ 0 اولية بهكار كيرى آنهاء. ‎rom‏ >دتحد در ++0) استاندارد Fg ec

صفحه 6:
‎ee)‏ به سبى 7و 7++و ل ا ا 0 ل ا ا 0 بازیابی اطلاعات.

صفحه 7:
هدف‌های رفتاری: انتظار می‌رود پس از پایان این جلسه بتوانید: ‎IY Brel bl CMT Crary‏ 0 2 - توابع معرفى شده عضو 25 و 3< را شناخته و وظيفة هر يى را شرح دهید. Bree Peet PES ‏ا‎ CHET - مفهوم «ورودى قالببندى شده؛ و دورودى قالببندى نشده را ‎Cae Pree OE ToC OMEY DP RCT me E‏ 00000 - نوع :2۷ را شناخته و رشته‌هایی از این نوع ایجاد کنید و با استفاده از توابع خاص.ء اين رشتهها را دس تكارى نماييد. - اطلاعات كاراكترى و رشتهاى رادر يك فايل متنى نوشته يااز 0

صفحه 8:
:مقدمه دادههايى كه در رايانهها يردازش مىشوند هميشه نيستند. معمولا لازم است كه اطلاعات كاراكترى مثل نام افراد. - نشانىها - متون - 'توضيحات - كلمات و ... نيز يردازش كردندء جستجو شوند. مقایسه شوند. به یکدیگر الصاق شوند یا از هم تفکیک گردند. ل كاراكترى رااز ورودى دريافت كنيم و با آنها را به شکل دلخواه به -, : ., بفرستیم. . در همين راستا توابعى معرفى مى كنيم كه انجام اين کارها را آسان 500

صفحه 9:
مروری بر اشاره گرها: يك اشارهكر متغيرى است كه حاوى يك آدرس از حافظه می‌باشد. نوع این متغیر از نوع مقداری است كه در آن آدرس ذخيره شده. با استفاده از عملكر ارجاع 6۷ می‌توان آدرس یک شی را پیدا کرد. همجنين با استفاده از عملكر مقداريابى 6: مى توانيم مقداری که در بک ادر قرار دارد را مشخص م 0 ا

صفحه 10:
رشتههاى كاراكترى در 0 در زبان 40+ يى درشتة: كاراكترى» آرابهاى از کاراکترهاست که این آرایه دارای ویژگی مهم زیر است: ‎-١‏ يك بخش اضافى در انتهاى آرايه وجود دارد كه مقدار كن كاراكثر 40007 بعك ‎١‏ انشت يش تعداد كل ‎Bec IpCy‏ ا ا ل ‎owe‏ ‎٠١‏ - رشتة كاراكترى را مىتوان با ليترال رشتهاى به طور ۳ كرد مثل: bor ‏هی 2 [ا سوت‎ ۱ 7 Cun vrce Cy ‎UL UU eee 1 ۲‏ 9 ۰ ۰( ۷ انا ۷۲ و ۰۱ ۱ وت و او و اوه

صفحه 11:
| نه مثل: در اين صورت. همة كاراكترهاى درون رشتة كاراكترى ‏ یکی ‎ne pee ae‏ ا ا ‎SP‏ ‏برخورد شود. ۴ - یک ننه کاراکتری را می‌توان مثل یک متغیر معمولی از ورودی دریافت کرد مثل:

صفحه 12:
۵ - توابع تعریف شده در سرفایل <۳۳۷:0۸> را می‌توانیم برای دست‌کاری رشته‌های کاراکتری به كار بكيريم. اين توابع عبارتند از: تابع طول رشته ‎Vea‏ ‏مد ساسا

صفحه 13:
0 6 LCM FY Sec DCMT EL Coe) 1 ‏ا‎ epee SPC Ate QOrat cater Gees = "ECw | Por (iat i = O; i < SG; i++) cat} << Hel >> ۱ >> y=" << Fall << ۳ 1

صفحه 14:
رشتة كاراكترى < داراى ينج عضو است كه ‎ID CMe Se‏ ۱ خروجی این مطلب را تایید می‌نماید. و کازاکتر ۲۱۲ به . فرستاده می‌شود. هیچ چیز چاپ نمی‌شود. حتی جای خالی هم چاپ نمی‌شود. ‎ea res od ad ed‏ ۱۳ دهد كه ميان دو علامت اپستروف هیچ جيزى جاب نشده. ههه 1516 OO oOs4 3

صفحه 15:
ورودى/خروجى رشتدهاى كاراكترى: ل ا ل رشته‌های کاراکتری رادريافت كرده يا نمايش داد. CCW 2 ETE) ‏در بخش‌های بعدی به آن خواهیم پرداخت.‎ روش ديكر. استفاده از توابع كمكي است كه آن را در ادامه شرح مىدهيم.

صفحه 16:
معال ۸.۲ روش ساده دربافت و بمایش رسه‌های كار اكترق”: در برنامة زير يك رشتة كاراكترى به طول 1 كاراكتر اعلان شده و کلماتی که از ورودی خوانده می‌شود 1۳ رشته قرار می‌ گیرد: | 0 | _ و ا i

صفحه 17:
‎cL ead‏ ی مت ی ۱۳ شامل توابع زير است: ‏رحس صت ‎Diu. ‎70 ‏همه این توابع شامل پی پیشوند 7:7 هستند زیرا آن‌ها طضوی از‎ ‏می‌باشند. به ۲۷ شیء فرآیند خروجی می‎ ‎eevee, ESO care or moth Un aN ees ‏تب | فراخوانى ا باعث ‎eit‏ یه درون 1 خوانده شود و مابقى كاراكترهاى وأزد شده تناديده ‏كرفته مى شوند.

صفحه 18:
ط ات یت ام ار :این برنامه ورودی را خط به خط به خروجی می‌فرستد 152 { cher iselOW) 7 ۱۱ 0 ل i

صفحه 19:
را مهن | [0 2]عصماء عصادر صل ال هت رت سرت وا هال" >> وصجاء >> "إنا" >> انوج (عصواك*) خازار ‎oe cd |‏ دك ۱

صفحه 20:
لا كل این برنامه تعداد حرف "< در جریان ورودی را شمارش ‎Re US scares ete)‏ می‌خواند» حلقه ادامه می‌باید: ‎oe‏ ‎Ree ale‏ ‎ed 0‏ كرك ‎Pe‏ ‏لديو لا = = ‎WP (ck‏ ‎ba‏ 1 ۱

صفحه 21:
ل ‎S,‏ ل ل ورودی را به حرف بزرگ تبدیل كرده و آن را مجددا در خروجى جاب مى كند: ‏فا ‎char ck, pre = \O } ‏رت یت ی ‎liao (‏ || ۶۲۱ < عم ۶ زرا مت مب مس مس تست ‎۳ ‎0

صفحه 22:
درل سس مر امسر در Pape ICON BSE orc ie Ony even Sine ee eB ‏:مى كند‎ Reker dn ered Been (Sey ۱۳ ‏یر نا‎ eee ens 1 (edd ۳ a nol while (cta.cet(ch)) P (ch >= 'O! 88 ch <= 'O') 3 Peet ee eoy be } زه << وم

صفحه 23:
تابع 00 اين نسخه از تابع 14 () معادل آن است كه در مثال قبلى بودة 0 ‎ae‏ رت ‎sh ‎while (ch = vic.perh()) iP (ch >= 'O' && ck <= 'O') Bo ‎Rand ‎0 ‏ا ‎cc)‏ م > از

صفحه 24:
1 ا ل 00 الل ا لل ا كك از توابعى است كه براى دس تكارى كاراكترها استفاده 7 تعریف شده به شرح زير است: 3 ات int isalnum(int c); 9 mie renga eNed OB Pee koe? ‏را برمی‌کرداند‎ int isalpha(int c); OF LC Ne eee SB te Tes 1s Boe برمیگرداند

صفحه 25:
(eu int iscntrl(int c); ‏کر » کاراکتر کنترلی باشد مقدار غیرصفر و در غیر گن.‎ ‏صفر را برمى كرداند‎ int isdigit(int c); ‏اكر © كاراكتر عددى باشد. مقدار غيرصفر و در غير آن.‎ ‏صفر را برمى كرداند‎ int isgraph(int c); 0 | نام تابع )015 1 Oisdigit Oisgraph

صفحه 26:
(ese int ispunct(int c); ‏اگر 6 کاراکتر چلپی به غیر از حروف و اعداد و فضای خللی باشد. مقدار غیرصفر‎ SS TOS seed cine Rel oleae 10 isspace(int os ‏ی ی لش نت ی مت ها نس‎ SINE ‏ام‎ ‎(۱ ae ‏الل‎ we ‏لمر ل‎ lar an en eS aad nee a int isupper(int c); ‏اگر 6 حرف بزرگ باشد. مقدار غیرصفر برمی گرداند وگرنه صفر را برمی گرداند‎ int isxdigit(int c); اكر © يكى از ده كاراكتر عددى يا يكى از دوازده حرف عدد شائزدهدهى شامل را و ا ا و رد و '2' و '5' باشد. مقدار غيرصفر برمى كرداند وكرنه مقدار صفر را برمى كرداند int tolower(int c); Drea ee seed arian eee cere gene ata ae ead ‏برمی گرداند‎ int toupper(int c); اگر 6 حرف کوچک باشد. کاراکتر بزرگ معادل آن را برمی گردلند وگرنه خود 6 را برمى كرد اند نام تابع Qispunct Qisspace Qisupper Qisxdigit Qtolower Qtoupper

صفحه 27:
توجه کنید که همه توابع فوق یک پارامتر از نوم ۲۱ دریافت می کنند و یک مقدار را برمی‌گردانند. علت ‎Se kor eel‏ 1 در عمل وقتى توابع فوق را به كار مىبرند. يى مقدار ا ا ل ل الم

صفحه 28:
آرابه‌ای از رشته‌ها به خاطر دارید که گفتیم يكد آراية دوبعدی در حقیقت آرای‌ای یک بعدی است که هر کدام از اعضای ن یک آراية ‎sega‏ ا ‎AC Cee CM SSE‏ اعلان شده باشد: ‎wher unve[S][CO]‏ ا هد تس مس مت سب ‎Creare 1 1‏ تارادا ‎aa‏ كن له اين مغو ‎SSSI ay A‏ ا ‎OS) eae‏ ‎Sees‏ ا ‎ee‏ 1 0 تصور كنيم.

صفحه 29:
از طويق ‎te‏ تع ا ل ل ‎EC rere err‏ ‎pees foal n‏ م ل ا ل 2 0 يك بعدى با آن رفتار مى شود. ين

صفحه 30:
آرابه‌ای از رشته‌های کاراکتری ‎CUE SO Ue eee I es es S‏ ذخیره کرده و سپس مقادیر آن آرایه را چاپ می‌کند: مت 6۱ م۳ AN RC Rca es Rn ee acy phe (cic. getioe(care[pott++t+], SD)) حت ول جار ‎cea‏ ل ا له ‏ا اك 0 0 ‎ext‏ << ل اه ‎1

صفحه 31:
یک آراية رشته‌ای پویا اين برنامه نشان مىدهد كه جكونه مى توان از كاراكتر ا ا ‎SN)‏ 1 ا لل ‎Pep Oper oer) ik ek We Cone b\ Cn eee eee Hy een eCy‏ ل لل ‎ee Oo Mee‏ ۱ ‎Pe wre eE etree tte‏ ا 1 سپس نام‌های ذخيره شده در آراية 7 جاب مى شوند:

صفحه 32:

صفحه 33:
مقداردهى يك آراية رشته‌ای ‎Te‏ لا سا ۱( ساسا مسا با( ,ان مخ ) ‎omere[J=‏ یز و ۲ << ‎Spout‏ Por (int i = O; i < D; i++) “oot << "\I" <<; <<", ۱ << xeve(i] << ‏اله‎ ‎je > > f 1

صفحه 34:
00 5 الله مه توابع استاندارد رشته‌های کاراکتری: ‎CMa cae ALC pom‏ به أن «كتابخانة رشتههاى كاراكترى» هم مى كويند. شامل خانوادة توابعى است که برای دست‌کاری رشته‌های 0 م مثال بعدى سادهترين آنها يعنى تابع طول رشته را 112225011 (يعنى تعداد كاراكترهاى لن رشتة) را برمی گرداند.

صفحه 35:
Osiries ‏تابع‎ Rowe Oe er URC eS ney Sk A ere ee ei ee CCR CxO SP MT Seo SCRE Remy Oe eC ge) ERE Pa ROB Cee] Te PCI BCL OC) Lape LC IN <iuchide <pstricrept 6 ‏من‎ ‏[آه ده ز‎ = 00008 1 joo >> sided >> ‏و‎ >> 5 355 Se ‏المج >> ا‎ ۳ ‏ل ا‎ har buPPer [OO] oot << "Cater stray") ia >> buPPer ‏انار‎ >> ۲ ۰ ("<< buPPer >> "( - ">> 2 ‏المج >> (لوعطيط)‎

صفحه 36:
ا م مسر 2 برنامة زير. مكان يابى يك كاراكتر يا زيررشتة خاص را در رشتة كاراكترى < نشان مىدهد: يي ‎BG‏ ‏مها ‏_ ا ل ایب ۱ ‎el oe)‏ سما ‎Fi A Se‏ (ت &_ روز ‎pois to s[" << p-» <<"].\a‏ ) م 5 سار 3 ett eee ea ota ‏ددم >> "إدص صصمم (كاض"ا ,5) | ">> نمم‎ ۳] << ‏م تمر‎ ‏مب‎ pir ae ۱0 of" << p—» >> MQW) wa<<" (gs, \"b") rete OT

صفحه 37:
2()eropy ‏قايع‎ 2121211111 07 Stoke <pereont <tock de <potrterg مس ب() ۶ 2 ۵۵0066 ۱ < ]6و ز 3" ved << "BePore prvpy(e(l,e2): ho Dt << "Wedd = [" << ol << "J, fergis = "<< vrtea(odl) ‏ز‎ << Dt << "WO < ] >> ‏(©ع)مطم >> ۲ < مط ,[" >> 6و‎ jood >> jorcpr(ed 2) م( »)ب ۹0۳ ک> له ز pou << "Wold < ] >> ‏(4م)سلوی >> ۲ 2 یط ,(" >> 4و‎ jewd >> (©ع)مطم >> " - طيصا ,[" >> هم >> "] د هيا" >> يوم ‎jowd >>‏

صفحه 38:
تب مرو مورا برنامةً زیر بررسی می‌کند که فراخوانی ی كدص () ‎oll] ۶ ۲۵۵0۵8‏ نز 71" - []هه جاه" ز :© 6ه دار سه ونع 9" >> فحت" ز )اه >> ۲ < لبط ب[" ک> و >> ] < ۳" >> لس << از ( )سوه <<" = ‎mat << "\wO = [" << 5O << "], lenis‏ << از ( ,یمور ما( مهو ‎jot << "@Per‏ )ای >> ۲ 2 رما ,[" >> 0و >> ] < ۲۳ >> له ‎a‏ ۱ << از سوه >> 2۲ سا ,)"<< ‎sO‏ >> ۳] > هي" >> يوم << از {

صفحه 39:
تابع الصاق رشته ؛مسب() ۱ Ld tao aed Re de ete Te Oe Bekele Cs | ‏6د سا‎ 2 ۷ ت۱۳ a ea ee eo ‏ل‎ ‏لمور‎ << ‎Se a ee ae)‏ | 1050 3 هت ‎ ‎Pee eee eee ne ۱ ‏ا ۱ م۱‎ ‏ل‎ ‏( مس ا ] < ۵ >> لس << اور ‎i

صفحه 40:
شه مم ‎Ree‏ 1 رشته‌های کاراکتری که تاکنون تشریح شد. در زبان ‏ استفاده می‌شوند و البته بخش ‎Ree Dt Tenet se ee Reece?‏ 1 سریع داده‌ها هستند. اما این سرعت پردازش هزینه‌ای هم دارد: خطر خطاهای زمان ‎Abel‏ ‎Sp Cape Ie Yr Caney. reer snes pee oe tga‏ 0 0 عنوان پایان رشته ‎ee Cy‏ ا ‎CMT hey‏ ۱ در اين رشتههاء طول رشته نيز درون رشته ذخيره مىشود و لذا فقط به كاراكتر با)00) برای مشخص نمودن انتهای رشته اکتفا نمی‌شود.

صفحه 41:
ROC) OR ne) ۱ ‏ا‎ BN YS Pe eT ‏را در فالب مجموعه‌ای از کاراکترها تایسپ می‌کنیم.‎ 1 ‏ا ل‎ ete ea ‏برنامه بفرستیم» این نتایج در قالب محموعه‌ای از‎ ‏کاراکتر ها نملیش داده می‌شوند. لازم است که لین‎ ‏کاراکترها بسه نحوی برای برناصه تفسیر شوند. مثلا‎ ‏وقتی قصد داریم‌یک عدد صحیح را وارد کنيم» جند‎ كاراكتر عددى تايب مى كنيم

صفحه 42:
حالا ساز و کاری لازم است که از لین کاراکترها ‎ea‏ ی همجنين وقنى قصد داييميك عدد اعشارى رلبه خروجی بفرستیم بلیدبا استفاده از راه‌کاری» كن عدد اعشارىببه كاراكترهليى تبديل شودتا يت ل ليت

صفحه 43:
۱ ee Ie en reared pre ‏کاراکترها را بسه داده‌هایسی از یسک نوع بنیادی تبدیل‎ ۱3 cae LOSS ie By ee ie ۱ Tee eee ee) oad زیر کلاس‌هایی تقسیم می‌شود:

صفحه 44:
شممء 1-2 جريلفنى است كه داذدههاى مورد ‎eS‏ کاراکترهای وارد شده ااا دادههاى ‎ee‏ رلبه كارا ۳ هاى - ۱ اا 1 — و > ‎wih‏ است که داده‌های را نیاز را از داده‌های ‎POS PCa Aa ot cure etary‏ مى كند. ‎Ped ASNT a)‏ جريلنى را دادههاى حاصل را درون يك فايل ذخيره مى نمايد. اين جريانها و طريقة استفاده از آنها را در ادامه 7

صفحه 45:
استفاده از عملگر بیرون کشی برای کنترل کردن یک حلقه : سم زد while (via >> a) الوح كك اي >> " دي" ‎rca i‏ t

صفحه 46:
ne nee CET BY ‎bE‏ <--1-0- تولبع مختلفى براى ورودى ذدارد. لین تولبع برای واره کردن کاراکترها و رشته‌های کاراکتری جه کار می‌رونه که کاراکترهای فضای سفید را نادیده ذمى كير ند. ‎T10)‏ ا الل ل ان ‎Cee pee Fey eae ar ope‏ ۳ ‏است.

صفحه 47:
فریافت کاراکترها با استفاده از تایع .ستوز).

صفحه 48:
وارد گردن یک رشتة کاراکتری به وسیلة تابع +۵«( De ROSIE ae bea Teele) ea) oe Eee ae Shane) EOC Se ee ter ee) ‎amt‏ 0 56د اما م سم ‏۱ ۳0 ۱ عمجت ‎ti OMen aay pre‏ ل ‎Oss sects ‎coal _‏ لل ‎=D‏ در ‎whte(cr.cpikce(cromprfat+], LOM) && o<OVLE) ‎iw ‎Por (rot RQ; tse; e+) soa << ‘Vi << rtd <<". " << ont] << ed

صفحه 49:
BS) ee Ore me ey mira) در (۲:+ استاندارد نوع داده‌ای خاصی به نام :7:77 وجود دارد که مشخصات این نوع ‎Bp ects ioe ee dee pore Le Re eee aaa 1p)‏ ‎Cee ee aS OMe ee Te Nt eee Ee Ce Re)‏ می‌توانند اعلان و مقداردهی شوند: 0 as ae سنوی ‎1٩‏ نمی ۵و || eas SRS a ae cans Ns ca Os eg || 55 ‏2و6 ۲ج‎

صفحه 50:
استفاده از نوع 2010 کد زیر یک مجموعه کاراکتر را از ورودی می‌گیرد و سپس بعد از هر کاراکتر یک علامت ویرکول و" اضافه می‌نماید. مثلا اگر عبارت ۳ ‎"COPTOORE DOOCOEOT 6 begat‏ ‎ON eee eM ee SCS ee)‏ The ‏رگ‎ DOOCG, OE, OT & begac ‏متن برنامه این چنین است: امس سس‎ 0 Cana}

صفحه 51:
نت9 يكى از مزيتهاى رايافه» قدرت نكهدارى اطلاعات حجیم است. فابل‌ها لین قدرت رلبه رابلنه می‌دهند. ‎Ce her ety Se es ad‏ ‎SS tt Tee rd‏ نمی کردند. چون اغلب برنامه‌های امروزی‌با فایل‌ها سر و کار دایند»یک برنامه‌نییس لازم است کمبا فلیل آشنا ‎eee‏ ا ‎pes‏ ‎eB‏ کارابی ۳ را ‎eddO LR)‏

صفحه 52:
۱۳ eB) ee Te Lae 3S) ‏ا ا ل ال‎ eee) Boat ‏ا ل‎ oar | ‏ل ل‎ eros, ‏دو زير شاخة مرس و رو وت‎ dot ped ‏ومحوجدا‎ ‏تقسيم مى شود.‎ جريان مرو براى خواندن اطلاعات ‎ea)‏ فلیل اه کار می‌رود و جريان موص وناو براى نونتن اطلاعات درون يك فايل استفاده مى شود.

صفحه 53:
ae a Som Serer een ‏شده‌اند.‎ ‎1 nee ‏ی‎ ‏شكل زير تعريف كنيد:‎ ۱ se wPstreay wrtteFie("ODNPOT.DXT") طبق کدهای فوق» ا ی

صفحه 54:
یک دفتر تلفن برنامة زيرء جند نام و تلفن مربوط به هر يك را به ترتيب از كاربر دريافت كرده و در فايلي به تام 1/۱۰/۳۱ ذخیره مي‌کند. کاربر براي پایان دادن به ورودي بايد عدد (0 را تايب كند. ‎Pree ae eee‏ ‎ee ee‏ es Bd Ree a ‏سا‎ ریز (قو ۳ ۵) ی اه ۳ اه و ۵ >> نج از ود و eee eee) od Aes eed toot << "Oawe 0 عدم >> السام << ' أ ‎aa‏

صفحه 55:
جستجوي یک شماره در دفثر ثلفن اين برنامه» فایل تولید شده توسط برنامه قبل را به کار مي‌گیرد و درون آن به دنبال یک شماره ثلفن مي‌گردد: مد رت ‎el‏ داكا میا اک ی ‎en ed‏ >> ‏واسه >> ۱۲ >> ووم‎ Se atte ad ۱ Mia ee ee ee ae a or {

صفحه 56:
پابان جلسه هشتم

جهت مطالعه ادامه متن، فایل را دریافت نمایید.
34,000 تومان