码迷,mamicode.com
首页 > 其他好文 > 详细

字符串指针作为函数用法

时间:2015-05-16 10:20:07      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:


#include <stdio.h>

int cpystr (char *pss, char *pds)
{
while((*pds=*pss)!=‘\0‘)  /*一是把pss指向的源字符串复制到pds所指向的目标字符串中,
                                       二是判断所复制的字符是否为’\0’,若是则表明源字符串结束,不再循环。*/
{
pds++;
pss++;
}
return 0;
}
int main()
{
char *pa="nihao",b[10],*pb;
pb=b;
cpystr(pa,pb);
printf("string a=%s\nstring b=%s\n",pa,pb);
return 0;
}
/*Cpystr函数的形参是两个字符指针变量。Pss指向源字符串,
pds执行目标字符串。在上面的代码中,程序完成了两项工作:

一是把pss指向源字符串复制到pds所指向的目标字符串中,

二是判断所复制的字符是否为’\0’,若是则表明源字符串结束,不再循环。
否则,pds和pss都加1,指向下一个字符。在主函数中,以指针变量pa,pb为实参,
分别取得确定值后调用cpystr()函数。由于采用的指针变量pa和pss,pb和pds均指向同一字符串,
因此在主函数和cpystr函数中均可使用这些字符串。*/
//也可以把coystr函数简化为一下形式:
int cpystr (char *pss, char *pds)
{
While((*pds++ = *pss++)!=’\0’);
return 0;
}
/即把指针的移动和赋值合并在一个语句中。进一步分析还可以发现’\0’的ASCII码为0,对于while语句只看表达式的值为非0就循环,为0则结束循环,因此也可以省去”!=’\0’ ”这个判断部分,而写为一下形式:
int cpystr (char *pss, char *pds)
{
While(*pds++ = *pss++);
return 0;
}
表达式的意义可解释为,源字符串向目标字符串赋值,移动指针,若所有赋值为非0则循环,否则结束循环。这样是程序更加的简洁。简化后的源程序就非常的简洁了。

字符串指针作为函数用法

标签:

原文地址:http://www.cnblogs.com/zengzhiling/p/4507382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!