欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

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

时间:2022-11-10 09:23:07|栏目: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;
}

运行,测试通过

在这里插入图片描述

总结

上一篇:C++实现LeetCode(150.计算逆波兰表达式)

栏    目:C代码

下一篇:没有了

本文标题:C语言字符串替换空格实例详解

本文地址:http://www.codeinn.net/misctech/218669.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有