如何用字符数组跟字符指针实现函数
字符数组和字符指针是有区别的,例如
char *str1, str2[10];
printf("sizeof str1:%d, sizeof str2 %d\n",
sizeof(str1), sizeof(str2));
打印的结果是
sizeof str1:4, sizeof str2:10
str1 = str2;这个赋值语句是没有问题的,因为str1是变量
而str2 = str1;就会有问题,因为字符数组的数组名是一个常量(地址常量),不能赋值
至于实现strcat,下面给你一个经典的实现方法
char *strcat(char *dest, const char *sr...全部
字符数组和字符指针是有区别的,例如
char *str1, str2[10];
printf("sizeof str1:%d, sizeof str2 %d\n",
sizeof(str1), sizeof(str2));
打印的结果是
sizeof str1:4, sizeof str2:10
str1 = str2;这个赋值语句是没有问题的,因为str1是变量
而str2 = str1;就会有问题,因为字符数组的数组名是一个常量(地址常量),不能赋值
至于实现strcat,下面给你一个经典的实现方法
char *strcat(char *dest, const char *src)
{
if (dest == NULL || src == NULL)
return NULL; //这里出错不处理了
char *ptr = dest + strlen(dest);
while (*ptr++ = *src++)
; //空语句
return dest;
}。
收起