版权声明:版权归属tangobravo所有 https://blog.csdn.net/tangobravo/article/details/85887000
将 字 符 串 中 的 相 邻 的 多 余 空 格 去 掉 , 例 如 (空 格 用 下 划 线 表
示): ”___hello____world___how_are_you__” ->”hello_world_how_are_you”
可以考虑不使用额外空间,原地置换。
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
void Format_Space()//删去多余的空格,保证每个单词之间只有一个空格,且开头结尾没有空格
{
char ch[MAX];
char *p;
int flag;
while (gets_s(ch,MAX)!=NULL)
{
p = ch;
char *ch1 = (char *)malloc(MAX * sizeof(char));
char *pnew = ch1;
while (*p==' ')//跳过开头的空格
{
++p;
}
flag = 0;
while (*p)
{
if (*p != ' ')
{
*pnew++ = *p;
flag = 0;
}
else
if (*p == ' '&&flag == 0)
{
*pnew++ = *p;
flag = 1;
}
++p;
}
*pnew = 0;
puts(ch1);
}
}
int main()
{
Format_Space();
system("pause");
}