رشته ها در c
مقدمه:
در زبان c رشته به صورت آرایه ای از کاراکتر ها تعریف می شوند. رشته ها برای ذخیره ,بازیابی ودستکاری متن ها مورد استفاده قرار می گیرند.برای تعیین انتهای رشته از کاراکتر خاصی به نام (تهی= NULL) استفاده می شود که با ‘۰\’ مشخص می گردد.بنابراین ,آخرین کرارکتر در هر رشته برابر با ‘۰\’ می باشد.لذا اگر رشته ای به طول n تعریف کنیم ,فقط از n-1 کاراکتر آن می توانیم استفاده کنیم, زیرا کاراکتر آخر ‘۰\’ است.مثال: [۱۰]char s
اگر محتویات این رشته برابر با “sahand” قرار گیرد, این رشته به صورت زیر نمایش داده می شود:
مقداردهی اولیه به رشته ها
هنگام تعریف رشته ها می توان به آن ها مقدار اولیه داد.هنگام مقدار دهی اولیه می توان طول رشته را مشخص نکرد .در این صورت ,اندازه آرایه یک واحد بیشتر از تعداد کاراکترهایی است که به آن نسبت داده می شود.دو روش برای مقدار دهی به رشته ها وجود دارد :
روش اول: رشته در داخل کوتشن قرار گیرد و به متغیر رشته ای (آرایه رشته ای) نسبت داده شود:
روش دوم: هر یک از کاراکترهای رشته ای به عنوان یک عنصر رشته به آرایه نسبت داده شوند:
ورودی خروجی رشته ها در c
برای ورودی و خروجی رشته ها می توان از توابع ()scanf و ()printf استفاده کرد.نباید از عملگر آدرس & قبل از نام آرایه استفاده کرد. زیرا نام آرایه خود نشان دهنده ی آدرس است.نکته: خواندن ()scanf تا رسیدن به اولین فضای خالی , tab یا Enter ادامه پیدا می کند.علاوه بر این دو تابع ,توابع زیر نیز از سرفایل stdio.h مورئ استفاده قرار می گیرند:
تابع ورودی ()gets
تابع خروجی ()puts
تابع ()gets:
خواندن رشته با تابع ()gets انجام می گیرد. این تابع در سرفایل stdio.h قرار دارد. این تابع بعد از خواندن رشته ,سطر جاری را رد می کند.نحوه کاربرد آن به صورت زیر است:
;(متغیر رشته ای)gets
مثال: ;[۲۱]char str
;(gets(str
پس از وارد کردن رشته باید کلید ENTER را نیز فشار داد.
تفاوت ()gets با ()scanf
تفاوت ()gets با ()scanf در این است که در تابع ()gets فقط کلید ENTER انتهای رشته را مشخص می کند. لذا رشته می تواند حاوی فاصله (space) و یا tab باشد. در حالی که در تابع ()scanf فاصله و tab نیز به عنوان اتمام بخش تلقی شده و انتهای رشته را مشخص می کند.
تابع ()puts:
چاپ رشته با تابع ()puts انجام می گیرد. این تابع در سرفایل stdio.h قرار دارد. این تابع پس از نوشتن رشته ,سطر جاری را رد می کند.کاربرد آن به صورت زیر است:
;(“رشته”)puts
;(متغیر رشته ای)puts
رشته به عنوان آرگومان تابع
چون رشته ها به صورت آرایه ای از کاراکترها تعریف می شوند, شیوه ارسال رشته ها به توابع,همانند آرایه است
در آرگومان تابع ,نام رشته ذکر می شود.
پارامتر معادل با رشته می تواند یکی از سه مورد زیر باشد:
- آرایه ای با طول معین
- آرایه ای با طول نامعین
- اشاره گر
خیلی مطالبتون مفید و کامل و جامع است.از سایتتون ممنونم
سلام
این رشته را چگونه برای چاپ در تابع puts قرار دهیم?
Hello “wellcom”to my city
منظورم ترکیب کارکتر ” در رشته است
متشکرم
با استفاده از “\
عالیی بود ممنونم
سلام
چطور میتونم یک رشته و یا آرایه ای که داخلش کاراکتر یا عدد هست رو پاک کنم؟
عالی بود.واقعا ممنون.
عالی . خسته نباشید