void tri(char* p,char k) { assert(p); char* s1 = p; char* s2 = p; while (*s2&&*s2 == k) //先去掉开始的空格 ++s2; *s1 = *s2; if (*s2 == '\0') //若为全空格字符串 return; while (*(++s2) != '\0') { if (*s2 != k||*s1 != k) //核心:(<a,a>||<_,a>)s2为字符 一定要复制 <a,_> s2为空格 s1为字符 代表为首次出现空格 要复制 { *(++s1) = *s2; } } if (*s1 == k) // 消除最后一个空格 *s1 = '\0'; else *(++s1) = '\0'; }
删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个
最新推荐文章于 2019-08-14 17:53:36 发布