>> ZAMYLA چان: تبریک می گویم در پایان خود
زن و شوهر اول از برنامه های C.
من می دانم که اولین تاخت و تاز کردن خود را به نحو C می تواند دلهره آور.
اما من به شما اطمینان می دهم، در پایان البته، شما قادر خواهید بود به در نگاه کنید
زن و شوهر اول از تکالیف و کامل آنها را در عرض چند دقیقه.
>> حالا که شما در حال گرفتن بیشتر آشنا با نحو، بیایید به سزار.
در سزار، کاربر را ارائه کلید صحیح به عنوان یک خط فرمان
استدلال، سپس وارد دشت پیام متن در اعلان.
این برنامه به رمز درآورد خواهد شد متن و چاپ
پیام خود را در متن رمزی.
>> enciphering را برای سزار کاملا ساده است.
شیفت هر حرف، خود را در متن ساده، با کلید.
به عنوان یک نتیجه، آن را نیز بسیار نا امن است.
اما پیاده سازی سزار معرفی خواهد کرد ما به ASCIIMath و آرایه داده
سازه ها.
ما به پیچیده تر رمز بعد.
با یک کلید سزار 2، نامه متن ساده می شود توسط
حرف C در متن رمزی به دلیل C دو حرف بعد از A. B خواهد بود
توسط D و C توسط E. ارائه شده به سوی پایان از حروف الفبا، W
توسط Y، X و توسط Z. اما Y نشان داده دو حرف بعد از آن را ندارد، بنابراین
رمز دور الفبای.
Y در متن ساده است بنابراین نشان داده در متن رمزی، و Z توسط B. ممکن است
برای مشاهده سزار سایفر مانند چرخ الفبای مستمر.
>> برای برمز نوشتن متن، کاربر دو استدلال را وارد کنید
به خط فرمان -
/ سزار به دنبال یک کلید.
مثل همیشه، ما می توانیم به کاربر اعتماد نمی کند به طور کامل به وارد کردن ورودی که باعث
حس برای برنامه های ما.
بنابراین ما باید به اعتبار خود ورودی خط فرمان.
>> به جای استفاده از درجه اعتبار ساقط اصلی اعضای هیات، ما با استفاده از اعضای هیات تحریریه اصلی، تعداد آنها عدد صحیح، رشته و argv.
تعداد آنها متغیر عدد صحیح نشان دهنده تعداد آرگومانهای داده شده به
خط فرمان.
و و argv یک آرایه، و یا فکر می کنم از آن به عنوان یک لیست، از استدلال گذشت.
>> بنابراین برای سزار، چگونه می توانم اعتبار ما ورودی کاربر؟
خب، آنها تنها باید ورود دو آرگومان خط فرمان -
/ سزار و یک کلید.
بنابراین اگر تعداد آنها 2، که بدان معنی است که آنها یا یک کلید و فقط را فراموش کرده ام
وارد شده است. / سزار، یا آنها وارد کلید های متعدد.
>> اگر این مورد است، سپس شما می خواهم به چاپ دستورالعمل
و خروج از برنامه.
آنها نیاز به دوباره سعی کنید از خط فرمان.
اما حتی اگر تعداد آنها 2 است، شما نیاز به چک کردن اینکه آیا آنها
شما یک کلید معتبر بدهد.
برای سزار، شما نیاز به یک عدد صحیح است.
اما و argv به آرایه ای از رشته ها است.
چگونه می توانم از این کلید شما دسترسی پیدا کنم؟
>> نگاه سریع در آرایه ها -
ساختارهای داده که نگه چندگانه مقادیر نوع داده همان.
نوشته نمایه صفر است، به این معنی که اولین عنصر شاخص صفر است
و عنصر آخر در اندازه شاخص است منهای 1، که در آن تعداد اندازه
عناصر موجود در آرایه.
>> اگر من صندوق پستی آرایه یک رشته جدید اعلام کرد طول 3، بصری،
به نظر می رسد شبیه به این.
سه ظروف برای رشته ، در کنار هم.
برای دسترسی به هر عنصر، نوع نام از آرایه و پس از آن نشان می دهد
شاخص در داخل پرانتز مربع.
در اینجا، من اختصاص دادن مقدار به هر عنصر، درست مانند من که با هر
متغیر رشته ای دیگر.
>> بنابراین برای دسترسی به آرگومان خط فرمان ما، همه ما باید انجام دهیم این است دسترسی به
عنصر از آرایه ی argv.
اگر کاربر وارد تیم / blastoff است موشک به ترمینال، و argv 0
شود / blastoff.
و argv خواهد بود تیم، و ARG2 موشک خواهد بود.
>> حالا که ما می توانید کلید خود دسترسی داشته باشید، ما هنوز نیاز به ایجاد
شوید که آن را درست است.
ما باید آن را تبدیل به یک عدد صحیح.
اما ما نمی توانیم درست مثل بازیگران ما قبلا انجام داده ایم.
خوشبختانه، به تابع Y مراقبت طول می کشد این برای ما و حتی می گرداند 0
اگر رشته را نمی تواند تبدیل می شود به یک عدد صحیح است.
آن را به شما، هر چند، برای گفتن کاربر به همین دلیل شما نمی خواهد
اجازه دهید برنامه را ادامه دهید.
ذخیره نتیجه به Y در عدد صحیح، وجود دارد و شما باید کلید خود را.
قسمت بعدی خیلی ساده است.
اعلان کاربر برای متن ساده خود را، که از نوع رشته داده باشد.
خوشبختانه برای ما، همه کاربر وارد شده رشته معتبر هستند.
>> حالا که ما تمام ورودی لازم از کاربر، آن زمان برای ما به
پیام خود را به رمز درآورد.
مفهوم سزار ساده است به اندازه کافی به درک.
اما چگونه کامپیوتر خود را می دانم که نامه پس از دیگری می آیند؟
>> در اینجا که در آن جدول ASCII می آید.
هر شخصیت دارای یک عدد صحیح تعداد وجود ندارد.
سرمایه 65 است.
سرمایه B 66 است.
حروف کوچک 97.
حروف کوچک ب 98 است.
اما شخصیت ها محدود نمی شود به تنها تعداد الفبایی.
برای مثال، نماد @ 64 تعداد ASCII است.
>> قبل از برخورد با کل رشته، بیایید وانمود ما فقط باید برای تغییر
یکی از شخصیت ها.
خب، ما فقط می خواهید به تغییر واقعی حروف در متن ساده، نه
کاراکتر یا اعداد باشد.
بنابراین اولین چیزی که ما را می خواهید چک کنید این است که آیا شخصیت در
حروف الفبا.
>> تابع isalpha را می کند این کار را برای ما و بولی را بر می گرداند -
اگر شخصیت واقعی یک نامه، اگر در غیر این صورت نادرست است.
دو تابع مفید دیگر isupper و islower، با
نام خود توضیحی.
بازگشت آنها اگر درست شخصیت داده شده بزرگ یا کوچک است،
بود.
از آنجا که آنها Booleans هستند، آنها برای استفاده به عنوان شرایط مفید است.
>> اگر isalpha می گرداند درست است، شما نیاز برای تغییر این شخصیت توسط کلید.
بنابراین باز به ASCIIMath اجازه و انجام برخی از ریاضی اسکی.
استفاده شده است بسیار شبیه به استفاده از برای سزار و طول می کشد در یک کلید در
خط فرمان.
>> اگر من را اجرا 5 ASCIIMath، آن را به نظر می رسد به اضافه کردن 5 تا، به من حرف F، و
نمایش ASCII ارزش.
خب بیایید یک نگاهی به این برنامه اجازه دهید.
>> شما ممکن است تعجب، حق در اینجا، به همین دلیل نامه یک عدد صحیح است، هنگامی که آن را
به وضوح، به خوبی، نامه.
معلوم است که شخصیت ها و اعداد صحیح قابل تعویض هستند.
با قرار دادن نامه در تک گیومه، عدد صحیح می تواند ذخیره
مقدار ASCII سرمایه A. مراقب باشید، هر چند.
شما نیاز به لباس های تک.
بدون علامت نقل قول منفرد، کامپایلر را برای یک متغیر
به نام A، و نه شخصیت.
>> سپس من نامه و یک کلید اضافه کنید، ذخیره سازی مبلغ در نتیجه متغیر نوع int.
حتی اگر نتیجه این است از نوع داده عدد صحیح، در دستور printf من با استفاده از
٪ ج حفره یا سوراخ برای شخصیت.
بنابراین برنامه چاپ کاراکتر همراه با نتیجه صحیح است.
و از آنجایی که ما چاپ عدد صحیح فرم و با استفاده از٪ د، ما می بینیم
تعداد نیز هست.
بنابراین در حال حاضر شما می توانید ببینید که ما درمان شخصیت ها و
اعداد صحیح، و بالعکس.
>> بیایید از آزمون ASCIIMath چند برابر بیشتر با استفاده از 25 به عنوان یک کلید.
ما Z نامه.
حالا ما سعی می کنیم 26.
ما می خواهیم حرف a رو دارم، اما به جای براکت چپ ما دریافت کنید.
بنابراین بدیهی است، فقط با اضافه کردن کلید نامه نمی خواهد انجام دهد.
ما نیاز به کشف کردن فرمول به بسته بندی کردن در اطراف حروف الفبا، دوست ما
به عنوان مثال در ابتدا انجام داد.
>> فرمول برای سزار از SHIFT به شرح زیر است.
ج برابر فسفر به علاوه K پیمانه 26.
به یاد داشته باشید که باقی مانده است مفید است عمل است که به ما می دهد باقی مانده
تقسیم یک عدد دیگر.
بیایید اعمال این فرمول به دشت متن نامه با کلید 2.
ارزش اسکی Y، 89 است، که به ما می دهد 91 پیمانه 26،
که برابر است با 13 -
قطعا نه ارزش ASCII از، که 67 است.
>> طنز من در حال حاضر و حرکت به دور از ارزش های ASCII به شاخص بر اساس حروف الفبا
که در آن صفر و در Z 25 است، معنی که 24 Y است.
24 به علاوه 2 پیمانه 6، به ما می دهد 26، پیمانه 26، 0 است، که
فهرست الفبایی.
بنابراین به نظر می رسد این فرمول به درخواست فهرست الفبایی از آن حرف و
نه ارزش ASCII آن.
>> اما شما با ارزشهای اسکی شروع می شود.
و به چاپ شخصیت متن رمزی، شما مقدار اسکی آن نیز نیاز دارند.
آن را به شما، پس از آن، برای کشف کردن چگونه به عقب و جلو سوئیچ.
>> هنگامی که شما کشف کردن فرمول درست برای یکی از شخصیت ها، همه شما باید انجام دهید
اعمال فرمول به هر نامه در متن ساده -
تنها در صورتی که نامه بر اساس حروف الفبا مرتب شده است، البته.
و به یاد داشته باشید که شما نیاز به حفظ مورد، بالا یا پایین تر، که در آن
isUpper و توابع isLower که قبلا ذکر شد در مفید آمده است.
شما ممکن است دو فرمول -
یکی برای حروف بزرگ و یکی برای حروف کوچک.
بنابراین isUpper یک isLower به شما کمک خواهد کرد تعیین فرمول به درخواست.
>> چگونه می توانم فرمول خود را به شما اعمال می شود به هر یک تک کاراکتر در یک رشته؟
خوب، یک رشته فقط یک آرایه ای از کاراکتر ها است.
بنابراین شما می توانید هر یک از شخصیت های دسترسی گروه بندی بیش از هر شخصیت را در
رشته در یک حلقه for.
همانطور که برای شرایط خود را برای حلقه، تابع strlen، برای رشته
طول، در مفید آمده است.
آن را در یک رشته را به عنوان ورودی و طول این رشته را برمی گرداند.
اطمینان حاصل کنید که شامل کتابخانه سمت راست استفاده از تابع طول رشته.
>> و در آنجا متن رمزی خود را به شما داشته باشد.
نام من Zamyla است.
و [زبان CODE].