C语言字符串替换空格实例详解

 更新时间:2022年02月18日 10:04:10   作者:爱你哦小猪猪  
这篇文章主要为大家详细介绍了C语言字符串替换空格实例,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

一、题目描述

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例:

输入:s = "We are happy."

输出:"We%20are%20happy."

限制:0 <= s 的长度 <= 10000

二、思路分析

思路

C语言的字符串无法改变大小,所以无法直接在原来的字符串上操作。于是我们先统计空格个数,算出替换后的字符串的大小,并申请一块新内存。(注意要多申请一个byte,放字符串结尾符’\0’)。再次遍历这个字符串,将空格替换成%20。

算法流程:首先得到字符串s的长度

遍历这个字符串,统计空格个数

计算新的字符串需要的空间,并申请一块新内存

遍历字符串s,如果没有空格则进行正常赋值。如果碰到空格,则在新字符串对应的三个位置放上%20

三、整体代码

整体代码如下

char* replaceSpace(char* s){
    int count = 0;
    int len = 0;
    while(s[len] != '\0'){
        len++;
    }
    
    int i = 0;
    for(i = 0; i < len; i++){
        if(s[i] == ' '){
            count++;
        }
    }
    
    char* str = (char*)malloc(sizeof(char)*(len + 1 + count * 2));

    int j = 0;
    for(i = 0; i < len; i++, j++){
        str[j] = s[i];
        if(s[i] == ' '){
            str[j++] = '%';
            str[j++] = '2';
            str[j] = '0';
        }
    }
    str[j] = '\0';
    
    return str;
}

运行,测试通过

在这里插入图片描述

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!       

相关文章

  • vector与map的erase()函数详细解析

    vector与map的erase()函数详细解析

    vector和map都不能将it++写在for循环中,而在循环体内erase(it)
    2013-09-09
  • C语言memset函数使用方法详解

    C语言memset函数使用方法详解

    这篇文章主要介绍了C语言memset函数使用方法详解的相关资料,希望通过本文能帮助到大家,让大家掌握这样的方法,需要的朋友可以参考下
    2017-10-10
  • C++的array和&array有什么区别

    C++的array和&array有什么区别

    本文主要介绍了C++的array和&array有什么区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • C++中二进制数据序列化和反序列化详解

    C++中二进制数据序列化和反序列化详解

    这篇文章主要为大家详细介绍了C++中二进制数据序列化和反序列化的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解下
    2023-11-11
  • C++深浅拷贝和string类的两种写法详解

    C++深浅拷贝和string类的两种写法详解

    这篇文章主要为大家详细介绍了C++深浅拷贝和string类的两种写法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • C++数据结构红黑树全面分析

    C++数据结构红黑树全面分析

    今天的这一篇博客,我要跟大家介绍二叉搜索树中的另一颗树——红黑树,它主要是通过控制颜色来控制自身的平衡,但它的平衡没有AVL树的平衡那么严格
    2022-02-02
  • C++ move()函数案例详解

    C++ move()函数案例详解

    这篇文章主要介绍了C++ move()函数案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • C语言修炼之路初识指针阴阳窍 地址还归大道真上篇

    C语言修炼之路初识指针阴阳窍 地址还归大道真上篇

    指针是指向另一个变量的变量。意思是一个指针保存的是另一个变量的内存地址。换句话说,指针保存的并不是普通意义上的数值,而是另一个变量的地址值。一个指针保存了另一个变量的地址值,就说这个指针“指向”了那个变量
    2022-02-02
  • 详解C语言之操作符

    详解C语言之操作符

    这篇文章主要以图文结合的方式为大家详细介绍了C语言的操作符知识,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-11-11
  • C语言中system()函数的用法总结

    C语言中system()函数的用法总结

    system()函数功能强大。以下小编就为大家介绍一下在C语言中system()函数的用法。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-10-10

最新评论