这个程序如果改成如下写法可能你就懂了:
void rep(char *s,char *s1,char *s2)
{
char *p;
for( ;*s !='\0';s++)
{
for(p=s1;*p !='\0'&&*p!=*s;p++);
if(*p !='\0')*s=*(p-s1+s2);
}
}
for( ;*s !='\0';s++)语句是对s数组进行遍历,当遍历到s数组结尾处时跳出fo循环,其内的for循环一样,if(*p !='\0')感觉这个判断没有必要,完全可以去掉。写程序时建议不要那样写,不容易阅读,且在语句*s=*(p-s1+s2);中,s2很容易出现数组越界的情况。
你这个函数要实现什么功能,我还是不明白。