一、字符数组、字符串、字符串指针的区别,以及sizeof和strlen的区别
1、sizeof(字符串)有包含‘\0’,而strlen(字符串)不包含'\0'。
2、sizeof()对这3种定义的区别在下面的小代码中。
3、strlen()对这3种定义的结果都是一样的。
代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char a[10] = "123456";
char b[] = "123456";
char *c = "123456";
printf("char a[0]: %ld\n",sizeof(a));
printf("char b[]: %ld\n",sizeof(b));
printf("char *c: %ld\n",sizeof(c));
printf("char a[0]: %ld\n",strlen(a));
printf("char b[]: %ld\n",strlen(b));
printf("char *c: %ld\n",strlen(c));
}
运行结果:
二、重写strcpy()函数。
char* strcpy(char* Desk, const char* Src)
{
char *p = Desk; //Desk用于返回
if(NULL == Desk || NULL == Src)
return -1;
while((*p++ = *Src++) != '\0');
return Desk;
}
想到其他题再补充》