CRCK array 1.5 (easy)

本文介绍了一种用于将字符串中的所有空格替换为'%20'的方法。该方法首先计算原始字符串中空格的数量,并据此调整输出字符串的大小。通过从后向前遍历输入字符串并逐个字符进行替换或复制,最终实现对所有空格的有效替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Write a method to replace all spaces in a string with ‘%20’.

// there are actually no tricks in this problem.<pre name="code" class="cpp">// the API can be a vector<char>, however, the idea is the same.
string repaceSpaces(string input) {
    // if the input length is 0, nothing to do but return.
    if(input.size() == 0) return input;
    // we need to count how many spaces in the input string.
    int spaceNum = 0;
    for(int i = 0; i < input.size(); ++i) {
        if(input[i] == ' ') spaceNum++;
    }
    // if there is no space, return original string directly.
    if(spaceNum == 0) return input;
    // calculate the new size for the output string. Think about why we only need to multiple 2? 
    int newSize = input.size() + spaceNum * 2;
    // it makes thing easier if we replace spaces backwards.
    string output = "";
   // note that, since we are copying from backward, we need to append the string front of the output.
   // this is actually not good.... it actually slows down.....
    for(int i = input.size() - 1; i >= 0; --i) {
        // once we find a space, we replace it with '%20'.
        if(input[i] == ' ') {
            output = '0' + output;
            output = '2' + output;
            output = '%' + output;
        // otherwise, just copy it to output.
        } else {output = input[i] + output;}
    }
    return output;
}



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值