پیاده سازی 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
{
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
{
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
برنامه ای که نحوه عملکرد تابع 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
#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
- برچسب ها: رشته، کپی رشته ها، strcpy، strncpy، stringncopy، string،
strncpy تابع کپی تعداد مشخصی از کاراکتر های یک رشته در دیگری
شکل کلی:
;(تعداد کاراکتر کپی شونده ,رشته مبدا ,نقطه ی آغازین عمل کپی+رشته مقصد)strncpy
مثال:
strncpy(str1+m;str2;n);
//end
//end
در مثال فوق تعداد n کاراکتر ابتدایی رشته ی str2 را از کاراکتر (m+1) ام رشته ی str1 تا محل (m+n+1) کپی میکند. اگر تعداد کاراکتر هایی که در str2 وجود دارد، کمتر از مقدار n باشد، به تعداد لازم کاراکتر NULL در انتهای str1 کپی میشود.
- کل صفحات:0
تبلیغات
