这是我写的strcpy函数的例程:
char* strcpy1(char* strDest,char* strSrc)
{
int i = 0;
if(checkNull(strSrc) == 0)
return NULL;
while(strSrc[i] != '\0')
{
strDest[i] = strSrc[i];
i++;
}
strDest[i] = '\0';
return strDest;
}
int checkNull(char* str)
{
int len = strlen(str);
if(len == 0)
return 0;
else
return 1;
}
另外还可以这么写:
char* strcpy1(char* strDest,char* strSrc)
{
int i = 0;
if(checkNull(strSrc) == 0)
return NULL;
while(*strSrc != '\0')
{
*strDest = *strSrc;
strDest++;
strSrc++;
}
*strDest = '\0';
return strDest;
}
int checkNull(char* str)
{
int len = strlen(str);
if(len == 0)
return 0;
else
return 1;
}
这个小程序并不难,但是我写的时候暴露了很多问题,仔细研究这些问题,可以提高自己对C指针的理解深度。
1、首先是字符串的定义,字符串在C语言的机制中和字符数组是一致的,只是字符串末尾以'\0'结束
因此定义一个字符串可以有两种形式。
char *s = "Hello World";
char s[20];
但是注意 如果只是定义了char *s;这样是不对的,因为此时s指针并没有显式的被分配值,这样程序运行的时候很有可能因为指针地址不正确造成程序崩溃。
而应该在定义了指针s之后,分配空间src = (char*)malloc(sizeof(char)*100);
2、另外就是字符串的遍历方法,上面的两个例程明确的说明了遍历的方式。