字符串复制函数strcpy
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* srcString,char* desString)
{
assert((srcString != NULL) && (desString != NULL));
char* addr = desString;
while((*desString++ = *srcString++) != '\0') ;
return addr;
}
int main()
{
char* srcString = "abcdefghijklmnopqrstuvwxyz";
char desString[30];
printf("desString = %s \r\n", my_strcpy(srcString, desString));
}
改进字符串复制函数strcpy
#include<stdio.h>
#include<assert.h>
#include<string.h>
char* my_strcpy(char *dest, const char *src) {
if (!dest || !src)
return NULL;
char *d = dest;
int size = strlen(src) + 1;
if ((d > src) && (d < (src + size))) {
d = d + size - 1;
src = src + size - 1;
while (size--) {
*d-- = *src--;
}
} else {
while (size--) {
*d++ = *src++;
}
}
return dest;
}
int main()
{
char desString[30];
char srcString[] = "abcdefghijklmnopqrstuvwxyz";
printf("desString = %s \r\n"