C语言字符串以及相关指针的使用

这是我写的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、另外就是字符串的遍历方法,上面的两个例程明确的说明了遍历的方式。

原文地址:https://www.cnblogs.com/ITEagle/p/2149043.html