تبلیغات
برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس - مطالب ابر strcpy
برترین پیشنهاد

برنامه نویسی C++ - آموزش و سورس برنامه ی سی پلاس پلاس

بزرگترین پایگاه آموزش سی پلاس پلاس و سورس تمام برنامه های آن

پیاده سازی strncpy به دو صورت

صورت اول:
char *strncpy(char *s,const char *t,unsigned n)
{
    for(unsigned i=0;i<n && t[i]!='\0';i++)
        s[i]=t[i];
    for(;i<n;i++)
        s[i]='\0';
    return s;
}

//end

صورت دوم:
char *strncpy(char *s,const char *t,unsigned n)
{
    char *ts=s;
    for(unsigned i=0;i<n && *t!='\0';i++,s++,t++)
        *s=*t;
    for(;i<n;i++,s++)
        *s='\0';
    return ts;
}

//end


پیاده سازی strcpy به دو صورت

حالت اول:
char *strcpy(char *s,const char *t)
{
    int i=0;
    while((s[i]=t[i])!='\0')
        i++;
    return s;
}

//end

حالت دوم:
char *strcpy(char *s,const char *t)
{
    char *ts;
    ts=s;
    while((*s=*t)!='\0')
    {
        s++;
        t++;
    }
    return ts;
}

//end


برنامه ای که نحوه عملکرد تابع strncpy را نشان میدهد:

#include <iostream.h>
#include <cstring.h>

int main(){
  char str[ ] = "cats are nice usually.";
    cout<<"before operating :\n"<<str;
     strncpy(str,"dogs",4);
      strncpy(str+9,"mean",4);
        cout<<"\nafter operating :\n"<<str<<endl;
  return 0 ;
}

//end


strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری

 شکل کلی:

;(تعداد کاراکتر کپی شونده ,رشته مبدا ,نقطه ی آغازین عمل کپی+رشته مقصد)strncpy


مثال:

strncpy(str1+m;str2;n);
//end


در مثال فوق تعداد n کاراکتر ابتدایی رشته ی str2 را از کاراکتر (m+1) ام رشته ی str1 تا محل (m+n+1) کپی میکند. اگر تعداد کاراکتر هایی که در str2 وجود دارد، کمتر از مقدار n باشد، به تعداد لازم کاراکتر NULL در انتهای str1 کپی میشود.


strcpy تابع انتساب رشته های کاراکتری، موجود در cstring.h

شکل کلی تابع:

;(رشته مبدا ،رشته مقصد)strcpy

مثال:
strcpy(str1, str2);

strcpy(str, "Computer");

//end


تذکر:
1. کپی کردن هر گونه رشته در رشته ای از نوع string به واسطه ی دستور انتساب(=) صورت میگیرد. بنابراین هیچ یک از پارامتر ها strcpy نمی تواند از نوع string باشد.
2. مراقب باشید که رشته ی مقصد طول کوچکتری نسبت به رشته ی مبدا نداشته باشد.