记录一些嵌入式笔试要点

一、字符数组、字符串、字符串指针的区别,以及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;
}

想到其他题再补充》

猜你喜欢

转载自blog.csdn.net/qq_40541268/article/details/84304741