您的位置:首页 > 其它

删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个

2013-04-18 16:49 411 查看
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';
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐