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

请实现一个函数,把字符串中的每一个空格替换成“%20”,比如输入

“We are Happly。”  则输出“we%20are%20happy。

void ReplaceBlank(char String[],int length)

{

//originalLength 为字符串string的实际长度

//length字符串的总容量

int originalLength  = 0;

int numberOfBlank = 0;

int i = 0;

while(string[i]!=‘\0‘)

{

++originalLength;

if(string[i] == ‘‘){++numberOfBlank;}

++i;

}

int newlength = originalLength+numberOfBlank;

if(newlength>length)

{return;}

int indexOfOriginal = originalLength;

int indexOfNew = newlength;

whlie(indexOfOriginal>=0 && indexOfNew>indexOfOriginal)

{

if(indexOfOriginal==‘ ‘)

{

string[indexOfNew--]=‘0‘;

string[indexOfNew--]=‘2‘;

string[indexOfNew--]=‘%‘;

}else

{string[indexOfNew--] = string[indexOfOriginal];}

--indexOfOriginal;

}

}

原文地址:https://www.cnblogs.com/llguanli/p/8684323.html

时间: 2024-10-10 23:10:36

请实现一个函数,把字符串中的每一个空格替换成“%20”,比如输入 “We are Happly。” 则输出“we%20are%20happy。”的相关文章

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”

替换空格:请实现一个函数,把字符串中的每个空格替换成“%20”例如输入“we are best ”,则输出we%20are%20 best 此题的实际意义是在网络编程中,如果URL中含有特殊的字符如空格.‘#’等可能导致服务器无法获取正常的参数,我们需要将特殊字符转换成服务器可以识别的字符.准换的规则是“%”加上ASCLL的两位十六制表示,如空格的ASCLL值是32则十六进制为0x20 void replaceBlank(char *src,int length) { int oriLength

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

请实现一个函数,将一个字符串中的空格替换成"%20".例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 注意从后向前替换,使得时间复杂度为O(n); public class Main { public static void main(String[] args) { Main main01=new Main(); String str=main01.replaceSpace(new StringBuffer("old s

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

剑指offer替换空格: 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路:当我们从前往后进行替换时,每替换一个就要移动后面的所有字符,时间复杂度是0(n2) 我们可以从后向前替换,先统计出所有的空格数space_count,就能得到替换后的长度是length+2*space_count 定义两个指针(可以用下标表示),i指向替换前的最后一个字符下标,j指向替换后的最后一个字符下标

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原

面试题4 将一个char数组中的所有空格替换成%20

题目: 将一个字符串 (char数组) 中的所有空格都替换成 "%20". 这里假设数组中是有足够的空余空间的  所以不需要扩展数组 解题思路就是 首先判断数组中到底有多少个空格 这样就可以知道 新的数组有多长 然后反着遍历数组 从最后一个开始  将字符串中的最后一个字符  移动到新的最后一个位置  然后是倒数第二个  一旦遇到空格就将 '0', '2', '%' 三个字符分别插入新的位置 以此类推 代码如下 public void mySolution(char[] str){ in

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

第一种: 思路: 遍历一个字符串,遇到空格向后移动三个char空间,插入%20,直到遍历结束. 时间复杂度O(n^2) 空间复杂度O(1) #include<iostream> #include<stdlib.h> #include<assert.h> using namespace std; void memmove(void* src,void* des,size_t size) { char* d=(char*)des; char* s=(char*)src; i

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

方法一: public String replaceSpace(StringBuffer str) {         if(str==null){             return null;         }        StringBuilder newStr = new StringBuilder();         for(int i=0;i<str.length();i++){             if(str.charAt(i)==' '){             

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

1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void replaceBlank(char *str); 5 6 int main() 7 { 8 char str[32]; 9 gets_s(str,32); 10 replaceBlank(str); 11 puts(str); 12 system("pause"); 13 return 0; 14 } 15 16 void replaceBlank(char *s

剑指offer 66题 -- 将一个字符串中的空格替换成“%20”

class Solution {public: void replaceSpace(char *str,int length) { //变量定义区 int newtv = 0; int oldtv = 0; int spaceNum = 0; //入参有效性判断 if( NULL == str || length <= 0) return; //计算空格数目 int i =0; while(str[i] != '\0') { oldtv++; if(str[i] == ' ') spaceNum