/* 复制字符串 */
int copyString(char * /in/, char * /out/);
int main()
{
//函数的返回状态值
int ret = 0;
char * p1 = “123456”;
char p2[100]; //在栈区分配内存
//char * p2 = (char) malloc(100); //在堆区分配内存,下面要添加条件判断 内存是否分配成功
ret = copyString(p1, p2);
printf("%s", p2);
return ret;
}
/* 复制字符串 */
int copyString(char * from/in/, char * to/out/)
{
int ret = 0; //函数的返回状态值
//使用p1、p2接收形参的值(可以不用)
char * p1 = from;
char * p2 = to;
//判断传入的参数是否合法
if(NULL == from || NULL == to)
{
ret = -1; //可以设置为16进制数字,用来显示程序的错误码
printf("function copyString() error, (NULL == from || NULL == to), error id:%d\n", ret);
return ret;
}
/* 实现复制字符串的操作
* *p1 = *p2; //先将p2的值赋给p1
* p1++; p2++; //再把p1和p2的地址++
* 由于使用的是while循环,所以在执行完最后一个 '\0'的赋值后才会判断循环条件是否有效
* 所以字符串的赋值可以简化为以下的代码
*/
while(*p2++ = *p1++)
{
}
return ret;
}