主題:字符串函數—strncpy函數的功能與模擬實現

與strcpy函數類似,strncpy同樣實現複製源字符串到目標字符串的功能,但通過size_t num參數控制複製字符的長度
功能展示
#include
#include
int main(){char arr1[30]="abcdef";char arr2[]="bit";strncpy(arr2,arr1,2);printf("%s",arr2);return 0;
}
模擬實現
#include
#includechar my_strncpy(char *des,const char*src,int count){char*bak=des;if(des==NULL||src==NULL){return NULL;}while(*src!='\0'&&count>0){ //增加count作為計數器,把count>0作為判斷條件*des=*src;des++;src++;count --; //每次賦值後計數器減一,直到count為零}if(count>0){ //在源字符串賦值結束後如果計數器還大於0while(count>0){count--; //則一直將其後的目標字符串地址賦予'\0',直到count為0*des++='\0';}return des;}*des='\0'; //在目標字符串最後加一位‘\0’,表示字符串結束return bak;
}
int main(){char arr[28]={'\0'};char arr2[]="kong";my_strncpy(arr,arr2,10);printf("%s",arr);return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
