题目:把字符串中的每个空格替换成"%20"。
思路:直观的做法是从头到尾扫描字符串,遇到空格就做替换,然而由于将一个字符替换成3个字符,我们必须将空格后面的所有字符都后移两个字节。这样没次遇到空格,都会移动字符。
对于这种问题,当字符串(或数组)长度变大,从前往后操作时移动次数多时,可以考虑从后往前操作。ps:对于删除字符串中的某些字符时,字符串长度变小,这时候应从前往后操作,如
移除字符串中的重复字符
。
题目:把字符串中的每个空格替换成"%20"
#include<cstdio>
#include<cstring>
using namespace std;
void ReplaceBlank(char * str)
if(str==NULL)
return;
//计算空格数目
int len = strlen(str);
int count = 0;
for(int i =0;i<len;i++)
if(str[i] == ' ')
count++;
char * tail = str+len+2*count;
*tail-- = 0;
for(int i =len-1;i>=0;i--)
if(str[i]==' ')
*tail-- = '0';
*tail-- = '2';
*tail-- = '%';
else *tail-- = str[i];
int main()
char str[1000001];
while(gets(str))
ReplaceBlank(str);
printf("%s\n",str);
return 0;
Return Values
String. Returns the string with the characters replaced if it succeeds and the empty string if it fails. If any argument's value is null, Replace returns null.
Usage
If the start posi...
题目描述请实现一个函数,将一个
字符串
中
的
空格
替换
成“%20”。例如,当
字符串
为We Are Happy.则经过
替换
之后的
字符串
为We%20Are%20Happy。一开始我拿到这个问题我感觉很简单,我想着直接使用java提供的函数解决这个问题。并且成功通过;String str2 = str.toString();
return str2.replace(" ","%20"); 但是如果需要使用的方...
:: 去掉左
空格
:: Code by JM 2006-11-28 CMD@XP
:: 出处:http://www.cn-dos.net/forum/viewthread.php?tid=25172
set "str= ab c&>! "
for /f "toke
is Friday!"逆转为"Firday! is Today”。(2012 百度、人人)
思路:如果想要不实用额外的空间,可以分为两步,首先将
字符串
全部逆转,然后通过
空格
分隔单词,使单词自身再次逆转。
输出结果为:helloworld
在这个例子
中
,我们使用了正则表达式 /\s+/g 来匹配
空格
,并使用空
字符串
'' 来
替换
空格
。这个正则表达式
中
,\s 表示
空格
,+ 表示匹配一个或多个
空格
,g 表示全局匹配。
如果您只想
替换
字符串
中
的前导和尾随
空格
,可以使用trim()函数。例如:
var str = " hello world ";
str = str.trim();
console.log(str);
输出结果为:hello world
lmw0320:
RTSP over UDP与RTSP over TCP取流对比
lmw0320:
欧拉回路判断
Zhaoge2334: