面试题:给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个
void RemoveExtraSpace(char* str)
{
bool keep_space = false; //表示是否允许保存空格,初始为false用于去除字符串刚开始的多余空格
int new_str_end = 0;
for (int i = 0; str[i]; ++i)
{
if (str[i] != ' ') //如果遍历到的是非空格字符,则进行赋值
{
str[new_str_end++] = str[i];
keep_space = true; //表示允许保存一个空格
}
else if (keep_space) //如果允许有一个空格
{
str[new_str_end++] = str[i];
keep_space = false;
}
}
//处理