#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’, 所以//不要轻易改变形参的值, 要引入一个辅助的指针变量. 把形参给接过来.....