美文网首页
【剑指Offer学习】【面试题04:替换空格】

【剑指Offer学习】【面试题04:替换空格】

作者: 林大鹏 | 来源:发表于2018-01-24 11:41 被阅读18次

题目:

请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%20are%20happy.”。

解答:

/**
 * 请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.“,则输出”We%20are%20happy.“。
 *
 * @param str     要转换的字符数组
 * @return 转换后使用的字符长度,-1表示处理失败
 */
NSInteger replaceBlankChar(char *str) {
    
    // 判断输入是否合法
    if (str == nil || strlen(str) == 0) {
        return -1;
    }
    
     // 统计字符数组中的空白字符数
    NSInteger oldStringLength = strlen(str);
    NSInteger blancChatCount = 0;
    for (NSInteger tmpIndex = 0; tmpIndex < oldStringLength; tmpIndex++) {
        if (str[tmpIndex] == ' ') {
            blancChatCount ++;
        }
    }
    
    // 如果没有空白字符就不用处理
    if (blancChatCount == 0) {
        return oldStringLength;
    }
    
    // 从后向前,第一个开始处理的字符
    // 处理后的字符放置的位置
    // 字符中有空白字符,一直处理到所有的空白字符处理完
    
    NSInteger newStringLength = oldStringLength + blancChatCount * 2;
    NSInteger tmpNewStringLength = newStringLength;
    for (NSInteger tmpCount = oldStringLength; tmpCount > 0; tmpCount--) {
        if (str[tmpCount] == ' ') {
            str[newStringLength--] = '0';
            str[newStringLength--] = '2';
            str[newStringLength--] = '%';
        }
        else {
            str[newStringLength--] = str[tmpCount];
        }
    }
    printf("%s\n", str);
    return tmpNewStringLength;
}


int main(int argc, const char * argv[]) {
    @autoreleasepool {

        char str[50];
        gets(str);
        replaceBlankChar(str);
        
    }
    return 0;
}

相关文章

  • LeetCode | 面试题05. 替换空格【剑指Offer】【

    LeetCode 面试题05. 替换空格【剑指Offer】【Easy】【Python】【字符串】 问题 力扣 请实...

  • 替换空格

    《剑指offer》面试题5:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“we...

  • 【剑指Offer学习】【面试题04:替换空格】

    题目: 请实现一个函数,把字符串中的每个空格替换成"%20",例如“We are happy.”,则输出“We%2...

  • [剑指offer] 替换空格

    本文首发于我的个人博客:尾尾部落 题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符...

  • 剑指offer - 替换空格

    题目 请实现一个函数,把字符串中的每个空格都换成%20。例如:输入"We are happy",则输出“We%20...

  • 《剑指offer》替换空格

    问题: 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换...

  • 剑指offer:替换空格

    题目分析 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替...

  • 剑指offer 替换空格

    题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替...

  • [剑指Offer]替换空格

    本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/02...

  • 【剑指offer】- 替换空格

    1、题目描述 请实现一个函数,把字符串中的每个空格替换成"%20"。 你可以假定输入字符串的长度最大是1000。注...

网友评论

      本文标题:【剑指Offer学习】【面试题04:替换空格】

      本文链接:https://www.haomeiwen.com/subject/bdklaxtx.html