رشته ها در 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

رشته به عنوان آرگومان تابع


چون رشته ها به صورت آرایه ای از کاراکترها تعریف می شوند, شیوه ارسال رشته ها به توابع,همانند آرایه است

در آرگومان تابع ,نام رشته ذکر می شود.

پارامتر معادل با رشته می تواند یکی از سه مورد زیر باشد:

  1. آرایه ای با طول معین
  2. آرایه ای با طول نامعین
  3. اشاره گر
2 پاسخ
  1. رها
    رها گفته:

    سلام
    این رشته را چگونه برای چاپ در تابع puts قرار دهیم?
    Hello “wellcom”to my city
    منظورم ترکیب کارکتر ” در رشته است
    متشکرم

    پاسخ دادن

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *