首页 > 代码库 > 指针函数的++(极易犯错误)

指针函数的++(极易犯错误)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>
//实现字符串的拷贝
int main11()
{
	char a[]={"dajdjaskd"};
	char b[267];
	int i;
	for(i=0;a[i]!=‘\0‘;i++)
	{
		*(b+i)=*(a+i);
	}
	b[i]=‘\0‘;//这个很重要呢,一定要加,否则这个结果就是乱码
	printf("b== %s\n",b);

	system("pause");
}

char copy_str(char *from,char *to)
{
	char *myfrom=from;
	char *myto=to;
	while(*myto++=*myfrom++);
	printf("from: %s\n",from);
}
char copy_str1(char *from,char *to)
{
	
	while(*to++=*from++);//字符串结束符 ‘\0‘ 的 ASCII 值 正好是 0。 所以 用 0 判断 和 用 ‘\0‘ 判断,结果一样。
	printf("from: %s\n",from);
}
 int main()
 {
	 char a[]={"sada"};
	 char b[128];

	 copy_str(a,b);
	 printf(" b : %s\n",b);

	  copy_str1(a,b);
	 printf(" b : %s\n",b);


	system("pause");
 }
  •   关于字符串有几个重点问题呢
  • 字符串循环赋值的时候,可能不能够赋值‘\0’ 需要手工加上去,要不然肯定出错。
  • 指针循环实现++的时候,输出的时候,指针指向了‘\0’, 所以//不要轻易改变形参的值, 要引入一个辅助的指针变量. 把形参给接过来.....

指针函数的++(极易犯错误)