新浪面试题:删除字符串中多余的空格

简介:

题目描述:

给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。 
比如 “  I like     http://hi.baidu.com/mianshiti  ” 会变成 "I like http://hi.baidu.com/mianshiti"。

void RemoveExtraSpace(char* str)
{
    bool keep_space = false;
    int new_str_end = 0;
 
    for (int i = 0; str[i]; ++i)
    {
        //如果遍历得到的此字符不是空格,则将标志符置为true;在进行else if语句时便可加入一空格;加入空格后标志符为false;这样就达到了缩进空格的目的;
        if (str[i] != ' ')
        {
            str[new_str_end++] = str[i];
            keep_space = true;
        }
        //如果遍历得到的此字符是空格,则将标志符置为false;
        else if (keep_space)
        {
            str[new_str_end++] = str[i];
            keep_space = false;
        }
    }
 
    //在进行最后处理时,判断最后一个字符是否为空格;如果是,则根据题目要求,将其去除;如果不是,则在其后面添加字符串结束符
    if (new_str_end > 0 && str[new_str_end - 1] == ' ')
    {
        str[new_str_end - 1] = '\0';
    }
    else
    {
        str[new_str_end] = '\0';
    }
}

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/03/23/2414301.html,如需转载请自行联系原作者
相关文章
|
20天前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
28 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
3月前
|
安全 Java 编译器
【Java基础面试二十九】、说一说你对字符串拼接的理解
这篇文章讨论了Java中字符串拼接的四种常用方式(使用`+`运算符、`StringBuilder`、`StringBuffer`和`String`类的`concat`方法),每种方式适用的场景,以及在不同情况下的性能考量。
|
3月前
|
Java
【Java基础面试二十八】、使用字符串时,new和““推荐使用哪种方式?
这篇文章讨论了在Java中使用字符串时,推荐使用双引号`""`直接量方式而不是使用`new`操作符,因为`new`会在常量池之外额外创建一个对象,导致更多的内存占用。
|
4月前
|
存储 安全 Java
Java面试题:请解释Java中的字符串和字符串缓冲区?
Java面试题:请解释Java中的字符串和字符串缓冲区?
29 0
|
5月前
|
存储 算法 数据挖掘
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
深入解析力扣166题:分数到小数(模拟长除法与字符串操作详解及模拟面试问答)
|
6月前
|
存储 算法 安全
【刷题】 leetcode 面试题 01.06 字符串压缩
来看效果: 非常好!!!过啦!!!
59 5
【刷题】 leetcode 面试题 01.06 字符串压缩
|
6月前
|
数据安全/隐私保护 C++ 索引
【一刷《剑指Offer》】面试题 4:替换空格
【一刷《剑指Offer》】面试题 4:替换空格
|
6月前
|
索引 Python Go
【python学习】字符串详解,面试必问公司的问题
【python学习】字符串详解,面试必问公司的问题
|
6月前
|
存储 Go 开发者
Golang深入浅出之-Go语言字符串操作:常见函数与面试示例
【4月更文挑战第20天】Go语言字符串是不可变的字节序列,采用UTF-8编码。本文介绍了字符串基础,如拼接(`+`或`fmt.Sprintf()`)、长度与索引、切片、查找与替换(`strings`包)以及转换与修剪。常见问题包括字符串不可变性、UTF-8编码处理、切片与容量以及查找与替换的边界条件。通过理解和实践这些函数及注意事项,能提升Go语言编程能力。
158 0
|
6月前
面试题 01.06. 字符串压缩
面试题 01.06. 字符串压缩
23 0