刚开始p1, p2同时指向字符串开头,p2开始移动,一致移到不是空格的字符,然后开始赋给p1,一致这样到遇到'\0'结束,最后*p1给字符串搞0结束。
#include <stdio.h>
int main(void) {
char s[] = " abc de f ";
char *p1, *p2;
p1 = p2 = s;
while(*p2 != '\0') {
while(*p2 == ' ')
p2++;
*p1++ = *p2++;
}
*p1 = '\0';
puts(s);
}