当运行以下程序时从键盘输入字符串qwerty和abcd,则程序的输出结果是

当运行以下程序时从键盘输入字符串qwerty和abcd,则程序的输出结果是
#include "string.h"
#include "stdio.h"
strle(char a[],charb[])
{
int num=0,n=0;
while(*(a+num)!='\0') num++;
while(b[n]) {*(a+num)=b[n]; num++ ;n++;}
return(num);
}
main()
{
char str1[81],str2[81],*p1=str1,*p2=str2;
gets(p1);
gets(p2);
printf("%d\n",strle(p1,p2));
}
我知道结果是10,希望有strle函数部分的详细解释,谢谢了

while(*(a+num)!='\0') num++;
while(b[n]) {*(a+num)=b[n]; num++ ;n++;}

这里其实做了三个部分
1、测出第一个字符串的长度
这个比较容易理解,因为字符串以'/0'结尾
while(*(a+num)!='\0') num++;

2、将字符串b以增加的形式拷贝到a,因为上一句结束
a+num是正好指向a的结束符的,
*(a+num)=b[n];
这里采用增量的形式续写a

3、在拷贝的同时,
while(b[n]),num++
又计算着,这两个字符串的总长度

我应该说的很明确了吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-07
strle函数的功能是求字符串p2复制到p1中后,p1的长度,但不改变字符串p1,p2.
第2个回答  2021-10-29
不好意思我没看清题
相似回答