|
|
发表于 2021-1-30 09:04:44
|
显示全部楼层
举个例子吧,输入 s = "123abc456abc789abc" ; 输入 d = "abc"
while( (p = strstr(s,d)) != NULL) //第一次循环 找到 s 中的 "abc" p = s+3 = "abc456abc789abc"
{
t = p + strlen(d) ; // t = p + 3 = "456abc789abc"
*p='\0' ; //p地址不变 p ="" s="123"
strcat(s,t); //s = "123456abc789abc"
}
while( (p = strstr(s,d)) != NULL) //第二次循环 找到 s 中的 "abc" p = s+6 = "abc789abc"
{
t = p + strlen(d) ; // t = p + 3 = "789abc"
*p='\0' ; //p地址不变 p ="" s="123456"
strcat(s,t); //s = "123456789abc"
}
while( (p = strstr(s,d)) != NULL) //第三次循环 找到 s 中的 "abc" p = s+9 = "abc"
{
t = p + strlen(d) ; // t = p + 3 = ""
*p='\0' ; //p地址不变 p ="" s="123456789"
strcat(s,t); //s = "123456789"
}
while( (p = strstr(s,d)) != NULL) //第四次循环 找不到 s 中的 "abc" p = NULL 结束循环 |
|