توابع

توابع رشته ای در برنامه نویسی C

اساطیر زبان

در این مقاله با نحوه کار رشته ها در برنامه نویسی C با استفاده از توابع کتابخانه ای مانند gets()، puts() ، strlenو … آشنا خواهید شد و همچنین نحوه دریافت رشته از کاربر و عملیات مرتبط روی آن را یاد خواهید گرفت.

اغلب باید رشته ها را با براساس نیاز مسئله دستکاری کنید و در بیشتر مواقع، اگر نگوییم همیشه، دستکاری رشته می تواند به صورت دستی انجام شود اما این منجر به افزایش پیچیدگی و بزرگ شدن برنامه خواهد شد.

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

برای حل این مسئله، زبان C توابع زیادی برای مدیریت رشته ها در کتابخانه استاندارد “string.h” فراهم کرده است.

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

عملکرد تابع تابع
طول رشته را محاسبه می کند.

strlen()

یک رشته را در رشته دیگری کپی می کند.

strcpy()

دو رشته را به هم متصل می کند.

strcat()

دو رشته را با هم مقایسه می کند.

strcmp()

تمام حروف رشته را به حروف کوچک تبدیل می کند.

strlwr()

تمام حروف رشته را به حروف بزرگ تبدیل می کند.

strupr()

توابع رشته ای در فایل هدر “string.h” تعریف شده اند.

#include <string.h>

()gets و ()puts

()gets و ()puts دو تابع رشته ای هستند که به ترتیب برای دریافت رشته از کاربر و نمایش آن مورد استفاده قرار می گیرند.

#include<stdio.h>

int main()

{

char name[30];

printf(“Enter name: “);

gets(name); //تابع گرفتن رشته از ورودی

printf(“Name: “);

puts(name); // تابع نمایش رشته در خروجی

return 0;

}

نکته: گرچه توابع ()gets و ()puts برای مدیریت رشته ها استفاده می شوند اما هر دو در فایل هدر “stdio.h” تعریف شده اند.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

5 دیدگاه. ارسال دیدگاه جدید

  • سلام برنامه ای میخوام که دورشته عددی ۱۰رقمی را از ورودی گرفته حاصل جمع وتفریق انهارا در خروجی چاپکنه

    پاسخ
    • محمدحسین شالچیان
      دی 16, 1400 7:00 ب.ظ

      سلام
      این برنامه ای که میدم خط اولش مبنا رو از 2 تا 16 میگیره و در خط بعدی دو عدد و علامت منها یا مثبت رو میگیره و حساب میکنه
      مثال:
      10
      24 + 36

      #include
      #include
      #include
      #define max(a, b) ((a > b) ? a : b)
      void operation(char n1[10000], char n2[10000], int mabna, char op){
      int a[10000] = {0}, b[10000] = {0};
      int j = 0;
      int n = strlen(n1), m = strlen(n2);
      for(int i = max(n, m) – n + 1; i <= max(n, m); i++){
      if(64 < n1[j] && n1[j] < 71){
      a[i] = n1[j] – 55;
      }
      else if(47 < n1[j] && n1[j] < 58){
      a[i] = n1[j] – 48;
      }
      j++;
      }
      j = 0;
      for(int i = max(n, m) – m + 1; i <= max(n, m); i++){
      if(64 < n2[j] && n2[j] < 71){
      b[i] = n2[j] – 55;
      }
      else if(47 < n2[j] && n2[j] 0; i–){
      result[i-1] = (a[i] + b[i] + result[i]) / mabna;
      result[i] = (a[i] + b[i] + result[i]) % mabna;
      }

      if(result[0])
      printf(“%d”, result[0]);

      int i = 0;
      for(; result[i] == 0; i++);
      for(; i 9)
      printf(“%c”, result[i] + 55);
      else
      printf(“%d”, result[i]);
      }
      }
      else{
      int result[10000] = {0};
      for(int i = max(n, m); i > 0; i–){
      if(a[i] >= b[i])
      result[i] = (a[i] – b[i]);
      else{
      a[i-1]–;
      result[i] = mabna + a[i] – b[i];
      }
      }
      int i = 0;
      for(; result[i] == 0; i++);
      for(; i 9)
      printf(“%c”, result[i] + 55);
      else
      printf(“%d”, result[i]);
      }
      }
      }

      int main(){
      int mabna;
      char a[10000], b[10000], result[10001], op;
      scanf(“%d”, &mabna);
      scanf(“%s %c %s”, &a, &op, &b);
      operation(a, b, mabna, op);

      return 0;
      }

      پاسخ
  • سلام برنامه ای میخام ب زبان cکه دو رشته را از ورودی خوانده و آن دو را باهم مقایسه کند

    پاسخ
    • با این دستور میشه مقایسه کردstrcmp() اگه باهم برابر باشن مقدار صفر برمیگردونه

      پاسخ
  • سلام برنامه ای میخام که یک رشته رو از کاربر بگیره و جروف بزرگ و کوچکشو جداگانه هرکدوم در یک خط چاپ کنه

    پاسخ

دیدگاهتان را بنویسید

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

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست