char* strcpy(char * destination, const char * source );
- 功能;将Source字符串拷贝到Destination空间中
- 返回值:返回Destination字符串起始地址
- 空间:Destination字符串空间应足够大来存放Source字符串
#includestrncpy函数char * mystrcpy(char* dest, const char* src) { if (dest == NULL || src == NULL) { return 0;//判断指针是否为空 } char* pdest = dest; while (*pdest++=*src++) { } 将Source空间的‘ ’,也拷贝到Destination空间 return dest; } int main() { char arr[] = "This is a string."; char arr1[128]=""; printf("%sn", mystrcpy(arr1,arr)); return 0; }
char * strncpy ( char * destination, const char * source, size_t num );
- 功能:从source字符串中拷贝num长度的字符到destination空间中
- 返回值:返回dest字符串的起始地址
注意如果src字符串大于等于num时,有num个字符被复制到dest中且不以 结尾,当src字符串小于num时,src字符串全部被复制到dest中且后续字符用 补上
#includestrcmp函数char * mystrncpy(char* dest, const char* src,size_t num) { if (dest == NULL || src == NULL) { return 0;//判断指针是否为空 } int count = num; char* pdest = dest; while (*src != ' '&&count>0) { *pdest = *src; pdest++; src++; count--; } while (count>0) { *pdest = ' '; count--;//注意如果src字符串大于等于num时,有num个字符被复 //制到dest中且不以 结尾,当src字符串小于num时, //src字符串全部被复制到dest中且后续字符用 补上 pdest++; } return dest; } int main() { char arr[128] = "hello"; char arr1[128]="This is a string"; printf("%sn", mystrncpy(arr1,arr,12)); return 0; }
int strcmp ( const char * str1, const char * str2 );
- 功能: 对两个字符串的ascⅡ码值进行逐个比较,比较出字符串大小
- 返回值:str1大于str2,返回值大于0;str1小于str2,返回值小于0;str1等于str2,返回值等于0
#includestrncmp函数int mystrcmp(const char* ptr1, const char* ptr2) { while (*ptr1 == *ptr2&& ptr1!=' ' && ptr2 != ' ') { ptr1++; ptr2++; } return *ptr1 - *ptr2; } int main() { char arr[128] = "aaaa"; char arr1[128] = "aaaab"; printf("%dn", mystrcmp(arr,arr1)); return 0; }
int strncmp(const char* str1, const char* str2, size_t num)
功能:返回num字符串之前的字符串大小
strncmp函数模拟实现#includeint mystrncmp(const char* str1, const char* str2, size_t num) { while (*str1 == *str2&& str1!=' ' && str2 != ' '&&num>0) { str1++; str2++; num--; } if (num == 0) { return 0; } return *str1 - *str2; } int main() { char arr[128] = "aaaa"; char arr1[128] = "aaaab"; printf("%dn", mystrncmp(arr,arr1,5)); return 0; }



