#include <stdio.h>
int main()
{
char s1[80],s2[80],s3[80];
char *p;
scanf("%s%s",s1,s2);
while((p=strstr(s1,s2))!='\0')
{
*p='\0';
strcpy(s3,p+strlen(s2));
strcat(s1,s3);
}
puts(s1);
}
求大佬解释一下while循环中 *p='\0';
strcpy(s3,p+strlen(s2));
的意思是什么,不太懂这两步。
谢谢!
C/C++里字符串结尾是0字节,就是'\0'。*p='\0'; 是把字符串s1在p所指的位置掐断。然后在原来s1串里面跳过s2字串,拷贝到s3。再把s3接到掐断后的s1后面。也就是把字串s2从s1里去掉了。