请高手帮我分析一下这个程序

来源:百度知道 编辑:UC知道 时间:2024/06/19 03:59:43
#include<stdio.h>
#include<string.h>
int process(char *s1,char *s2,char *s3)
{int i=0,j=0,len1=strlen(s1),len2=strlen(s2),len3=0;
for(i=0;i<len1;i++)
{for(j=0;j<len2;j++) if(s1[i]==s2[j]) break;
if(j>=len2) s3[len3++]=s1[i];
}
s3[len3]='\0';
return len1-len3;
}
void main()
{char s1[]="bilker",s2[]="lr",s3[20]; int n;
n=process(s1,s2,s3); puts(s3); printf("%d",n);
}
process函数中{for(j=0;j<len2;j++) if(s1[i]==s2[j]) break;
if(j>=len2) s3[len3++]=s1[i];
}
不懂,请帮忙解决一下,谢谢

{for(j=0;j<len2;j++) if(s1[i]==s2[j]) break;
if(j>=len2) s3[len3++]=s1[i];
}
就是在字符串s2中查找是否有和s1[i]相同的字符,找到则停止循环,找不到则直到j==len2时循环才停止,这时候就可以根据j是否>=len2来判断是找到了相同字符而停止循环的,还是没找到.没找到的话,则将s1[i]放入字符串s3的末端.

因此可知,process的功能就是把s1中所有在s2中未出现的字符,放入s3中.